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 不相等。