C语言例题看不懂

来源:百度知道 编辑:UC知道 时间:2024/05/12 11:47:51
#include <stdio.h>
main()
{
long sum=1l;
int i=1;
int j=1;
int count=0;

printf("\nEnter the number of integers you want to sum:");
scanf("%d",&count);

for(i=1;i<=count;i++)
{
sum=1l;
j=1;
printf("\n1");

while(j<i)
{
sum+=++j;
printf("+ %d",j);
}
printf("= %ld\n",sum);
}
}
他输出的结果是
1 = 1
1+2=3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
………………等等

但是以我理解输出应该是:
1=1
1+2=3
1+3=4
1+4=5
1+5=6
………………等等
我的理解在哪里出错了?
我实在是笨的可以
因为你这么说输出应该是
1=1
1+2+2=3
1+2+2+2=5
……………………
等等
我没有老师教的,还请见谅。

二楼..

while语句在i不同时,会循环不同次的

i=2 while 会循环2次.执行2次printf("+ %d",j);
i=3 while 会循环3次.执行3次printf("+ %d",j);
i=4 while 会循环4次.执行4次printf("+ %d",j);
i=5 while 会循环5次.执行5次printf("+ %d",j);
我以为i=1 while 会循环1次.执行1次printf("+ %d",j); ////这里应该是零次吧..while(j<i) 没有成立啊.所以输出 1=1

while语句在i不同时,会循环不同次的
i=1 while 会循环1次.执行1次printf("+ %d",j);
i=2 while 会循环2次.执行2次printf("+ %d",j);
i=3 while 会循环3次.执行3次printf("+ %d",j);
i=4 while 会循环4次.执行4次printf("+ %d",j);
i=5 while 会循环5次.执行5次printf("+ %d",j);

注意:每次改变i值的时候,j都会变为1 (循环之前有语句j=1)
如果还不明白,那我确实没办法了