我是 C 的初學者,當我遇到一個問題時,我只是在鉆研 for 回圈,而我通過解決它而不是通過理解來解決它。我的腳本將數字從 1 加到 10 并計算平均值。問題是我必須引入一個新變數“數字”,而不是“總和”和“計數”,以免平均值出錯。
#include <iostream>
int main ()
{
float count, sum, avg, number;
sum=avg=number=0.0;
for (count=1.0;count<=10.0;count =1.0)
{
sum=sum count;
avg=sum/count;
number=count;
}
printf("\n\nThe number of iterations is %1.f",number);
printf("\nThe sum of the numbers between 1 and 10 is = %.1f",sum);
avg=sum/number;
printf("\nThe average is %.1f",avg);
}
產生正確的結果,但
#include <iostream>
int main ()
{
float count, sum, avg;
sum=avg=0.0;
for (count=1.0;count<=10.0;count =1.0)
{
sum=sum count;
avg=sum/count;
}
printf("\n\nThe number of iterations is %1.f",count);
printf("\nThe sum of the numbers between 1 and 10 is = %.1f",sum);
avg=sum/count;
printf("\nThe average is %.1f",avg);
}
比我預期的多一次迭代并導致平均值錯誤。我認為也許呼叫“計數”來列印加起來但不確定,真的很想知道為什么。對不起,如果問題,但我無法弄清楚。
uj5u.com熱心網友回復:
在這個回圈中
for (count=1.0;count<=10.0;count =1.0)
{
sum=sum count;
avg=sum/count;
number=count;
}
數字不能大于 10.0。
但在這個回圈中
for (count=1.0;count<=10.0;count =1.0)
{
sum=sum count;
avg=sum/count;
}
由于條件 count<=10.0,退出回圈后 count 大于 10.0。
所以這些陳述
avg=sum/number;
和
avg=sum/count;
產生不同的結果,因為回圈后 number 和 count 不相等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452306.html
