0

此代码是计算函数 f(x) 的积分程序

在这里..函数是 f(x)= x^2

int main()
{
float integral;
float a=0,b=0;
int n=1024;
float h;
float x;
int i;

float f(float x);

printf("Enter a, b \n");
scanf("%f %f" , &a, &b);
printf("Enter  n\n");
scanf("%d" , &n);



h=(b-a)/n;
integral = (f(a)+f(b))/2;
x=a;
for (i = 0; i <= n-1; n++)
{
    x = x + h;
    integral = integral + f(x);
}
integral = integral * h ;

printf("with n = %d trapezoids, our esrimate\n", n );
printf("of the integral from %f to %f =  %f\n", a , b , integral);

system("pause");
return 0;

}


float f(float x)
{
  return x*x;
}

n 的输出总是垃圾..我不知道为什么我的错在哪里?

这个问题很愚蠢

但我真的很累找错了 在此处输入图像描述

4

3 回答 3

3

这是你的错误:for (i = 0; i <= n-1; n++)。你递增n而不是i.

于 2012-05-23T11:32:48.957 回答
3

错误就在这里,可能是错字:

for (i = 0; i <= n-1; n++)

顺便说一句,程序中还有另一个错字:应该估计esrimate :)

于 2012-05-23T11:33:01.220 回答
0

你必须清理键盘内存

冲洗

printf("Enter a, b \n");
scanf("%f %f" , &a, &b);
   fflush(stdin);
printf("Enter  n\n");
scanf("%d" , &n);
于 2012-05-23T11:34:01.237 回答