问答详情
源自:4-6 循环结构之while循环

计算100以内整数的和,这样算出来是5051多了1为什么呢?

#include <stdio.h>

int main()

{

    int sum=0;

    int i=0;

    while( i<=100 )  //循环条件

    {

        i++;         //改变循环变量的值

        sum=sum+i;

    }

    printf("100以内所有整数之和为:%d\n", sum);

    return 0;

}


提问者:后会无期_ 2017-05-14 11:55

个回答

  • 亿通制卡彩印
    2017-06-12 17:56:17
    已采纳

     i++;         //改变循环变量的值

    sum=sum+i;

    把这两行的位置互换一下。



  • 亿通制卡彩印
    2017-06-12 17:59:40

    完整代码如下:

    #include <stdio.h>

    int main()

    {

        int i,sum=0;

        i=0;

        while(  i<=100  )  //循环条件应该是什么呢?

        {

            sum=sum+i;

            i++;         //这里是不是应该改变循环变量的值

        }

        printf("100以内所有整数之和为:%d\n", sum);

        return 0;

    }


  • 齐天大圣只有一个
    2017-05-24 11:25:50

    楼主我有点不明白,就是我用电脑运行一遍也是5151但是不明白哪里错了,第一次循环的的时候sum不是=0+1的嘛?然后依次循环到100嘛?

  • 后会无期_
    2017-05-14 12:13:42

    看错了,是5151,多了101,加多了,应该把i起始值改为1,或者去掉循环条件里的等于号。