这程序是有问题的,由于之前没有注释大家都不知道求什么,现在尽可能的打算注释,看看大家能帮忙解决没有
#include<stdio.h>#include<math.h>
#define maxsize 100
#define eps 0.000001
int main(void)
{
double a,b,t,x[maxsize],step,s0,s1,f();
int i,n;
printf("please input a= and b=\n");
scanf("%lf %lf",&a,&b);
n=1;
s0=(f(a)+f(b))*(b-a)*step/2;
do
{
n=n+1;
step=(b-a)/n;
for(i=0;i<n;i++)
{
x[i]=a+i*step;
s1=0;
for(i=1;i<=n;i++)
s1+=(f(x[i]))*step;
t=s0;
s0=s1;
}
}
while (fabs(s0-t)>eps);
{
printf("s0=%lf\n",s0);
printf("此时步长为:%d",n);
printf("\n");
}
return 0;
}
double f(double m)
{
double y;
y=sqrt(1+pow(m,2));
return y;
}
求得积分近似值=(f(a)+f(b)+两倍(求和公式(i从1到n-1)(f(i)+f(i+1))*(h/2) xi=a+i*n (i=0,....,n),step=(b-a)/n,(a,b)为积分区间。放出来几天了,没有注释,因为这里打不了符号这能这么打,希望大家原谅