如题所述
#include <stdio.h>
float f1(float x)
{
return (1+x*x);
}
float f2(float x)
{
return (x/(1+x*x));
}
float Integral(float (*f)(float), float a, float b)
{
float res = 0;
int i,n;
float h = 0.0001;
n =(b-a)/h;
for(i=0; i<n; i++)
{
res += ((*f)(a+h*i)+(*f)(a+h*(i+1)))*h/2.;
}
return res;
}
int main()
{
printf("y1 = %f\n", Integral(f1, 0, 1));
printf("y2 = %f\n", Integral(f2, 0, 3));
return 0;
}
float f1(float x)
{
return (1+x*x);
}
float f2(float x)
{
return (x/(1+x*x));
}
float Integral(float (*f)(float), float a, float b)
{
float res = 0;
int i,n;
float h = 0.0001;
n =(b-a)/h;
for(i=0; i<n; i++)
{
res += ((*f)(a+h*i)+(*f)(a+h*(i+1)))*h/2.;
}
return res;
}
int main()
{
printf("y1 = %f\n", Integral(f1, 0, 1));
printf("y2 = %f\n", Integral(f2, 0, 3));
return 0;
}
运行结果如下:
请采纳。
温馨提示:答案为网友推荐,仅供参考