用梯形法求定积分的C语言程序 公式:s=h*((f(a)+f(b))/2+n-1∑i=1f(a+i*h),帮我看下程序哪里有错,

#include "stdio.h"
#include "math.h"
double integ(double a=0.0,b=1.5)
{double s,x,h;
int n=100,i;
h=fabs(b-a)/n;
s=(sin(a)+sin(b))/2.0;
for(i=1;i<=n-1;i++)
{x=a+i*h;s=s+sin(x);}
s=s*h;
return s;
}
main()
{double s;
s=integ(0.0,1.5);
printf("s=%f\n",s);
}

#include "stdio.h"
#include "math.h"
/*double integ(double a=0.0,b=1.5)
参数传递时不实参会自动将值传递给形参,你这里直接赋值所以出错了*/
double integ(double a,double b)
{double s,x,h;
int n=100,i;
h=fabs(b-a)/n;
s=(sin(a)+sin(b))/2.0;
for(i=1;i<=n-1;i++)
{x=a+i*h;s=s+sin(x);}
s=s*h;
return s;
}
main()
{double s;
s=integ(0.0,1.5);
printf("s=%f\n",s);
}
//修改成这样就可以编译运行
温馨提示:答案为网友推荐,仅供参考