用矩形法求函数的定积分(哪错了?)

来源:百度知道 编辑:UC知道 时间:2024/05/29 22:47:12
#include <stdio.h>
int sab(a,b,n)
{
float s,h,d;
h=(b-a)/n;
for(k=2;k<n;k++)
{
s=h*(a+k*h);
d=s+h*(a+(k-1)*h);
}
return d;
}
void main()
{
float r;
int a,b;
long int n=9999999;
printf("输入区间段,用逗号隔开\n");
scanf("%d,%d",&a,&b);
r=sab(a,b,n);
printf("该函数在区间%d至%d的积分为%f\n",a,b,r);
}
函数就是F(X)=X

#include <stdio.h>
float sab(float a,float b,int n) //返回值类型应该为float
{
float s,h,d;
h=(b-a)/n;
for(int k=2;k<n;k++)
{
s=h*F(a+k*h); //求a+k*h处的小矩形的面积
d+=s; //把这个小面积加入总面积中
}
return d; //返回总面积即为积分值
}
void main()
{
float r;
int a,b;
long int n=9999;
printf("输入区间段,用逗号隔开\n");
scanf("%d,%d",&a,&b);
r=sab(a,b,n);
printf("该函数在区间%d至%d的积分为%f\n",a,b,r);
}