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の出力は常にガベージ..なぜどこが間違っているのかわかりませんか?

質問は愚かです

bu私は間違ったものを探すのに本当に疲れました ここに画像の説明を入力してください

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 に答える