for 循环生成附加迭代后的打印语句
Print statement after for loop generating an additional iteration
我是 C++ 的初学者,当我 运行 遇到一个问题时,我只是深入研究 for 循环,我是靠即兴发挥而不是靠理解解决的。
我的脚本将 1 到 10 的数字相加并计算平均值。问题是我不得不引入一个新变量“number”,而不是“sum”和“count”,以免平均值出错。
#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);
}
给出的迭代次数比我预期的多,导致平均值错误。我假设也许调用“计数”来打印加起来但不确定并且真的很想知道为什么。对不起,如果这个问题,但我无法弄明白。
在这个循环中
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 不相等。
我是 C++ 的初学者,当我 运行 遇到一个问题时,我只是深入研究 for 循环,我是靠即兴发挥而不是靠理解解决的。 我的脚本将 1 到 10 的数字相加并计算平均值。问题是我不得不引入一个新变量“number”,而不是“sum”和“count”,以免平均值出错。
#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);
}
给出的迭代次数比我预期的多,导致平均值错误。我假设也许调用“计数”来打印加起来但不确定并且真的很想知道为什么。对不起,如果这个问题,但我无法弄明白。
在这个循环中
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 不相等。