c语言循环结构的问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:59:06
求1+2+3.。。。。+100的和。
main()
{ int i;sum;
i=1;
sum=0;
while(i<=100)
{
sum=sum+i;
i++'
}
printf("sum=%d",sum);
}

我不太明白它是怎么求1到100的和的,第一次循环后sum的值是1,i的值是2,第二次不就应该是sum=1+2=3么,sum的值每次都会变,怎么求和啊

仔细看下去:
初始条件:sun=0;i=1;
第一次循环:sum=sum+i=0+1;i=2
第二次循环:sum=sum+i=(0+1)+2;i=3;
第三次循环:sum=sum+i=(0+1+2+3);i=4
...
第九十九次循环:sum=sum+i=(0+1+2+...+98)+99;i=100
第一百次循环:sum=sum+i=(0+1+2+...+99)+100;i=101
i>100 就循环结束了,sum的值就是1加到100的和

第二次是对的sum=1+2=3,sum当然会变了,因为他循环一次都把前面数的总和与i循环出来的数想加.
第三次就是把1+2的和与第3个数相加,也就3,那么就是1+2+3了,之后就是sum=1+2+3=6既sum=6,

下次循环就是1+2+3+4了要把sum是总和搞清楚.也就是sum=6+4(原来的sum=6,i=4),
下一次就是把1到4的和与i相加既sum=10+5=15(1+2+3+4+5=15).以此类推
要记住,等号左边的sum是前面数的总和.
加到100也就是1到99的总和sum再加上100了.
就是1加到100的和了.

就是变才对啊。。。
累加。