//写一个用矩形法求定积分的通用函数
#include<stdio.h>
#include<math.h>
double sinx(double x)
{
return sin(x);
}
double cosx(double x)
{
return cos(x);
}
double ex(double x)
{
return exp(x);
}
int main()
{
int flag;
double (*p)(double);//此处定义指针函数
double h,i,a,b,n,sum,t;
n=1000;
sum=0;
printf("请输入积分的上下线,中间用空格隔开:\n");
scanf("%lf %lf",&a,&b);
if(a<b)
{
printf("输入错误,但已自动改正您输入的错误:\n");
t=a;
a=b;
b=t;
}
h=(a-b)/n;
printf("请输入你要计算的积分0 sinx 1 cosx 2 ex\n");
scanf("%d",&flag);
if(flag==0)
p=sinx;
else if(flag==1)
p=cosx;
else if(flag==2)
p=ex;
for(i=b;i<a;i+=h) //这一步是最重要的一步
sum+=p(i)*h;
printf("%lf\n",sum);
return 0;
}
谭浩强第四版,第八章课后习题13题