思路分析
代码实现
#include <stdio.h>
float DefiniteIntegral(float x,float y,float (*f)(float));
float Fun(float x);
int main() {
printf("%f",DefiniteIntegral(1,2,Fun));
}
/*
功能描述:计算定积分的函数
形参列表:上限x
下限y
被积函数f
注意事项:注意计算对应的等分数和梯形的高度
*/
float DefiniteIntegral(float x,float y,float (*f)(float))
{
int n, i;
float h, sum;
n = 1000;
h = (y - x) / n;
sum = ((*f)(x) + (*f)(y)) / 2;
for(i = 0; i < 1000; i++)
{
sum = sum + (*f)(x + i * h);
}
return sum * h;
}
/*
需要被定积分的函数式
*/
float Fun(float x)
{
return x / (1 + x * x);
}
总结
- 编程的习惯不是很好,先是声明,然后在使用。谋定而后动,想到什么就是什么,思维比较乱。