C语言中sum=sum+(i+=2)怎么理解?

我以为是k = j+i;i = i+2;用了个循环试了下,结果发现不对啊.
#include "stdio.h"
int main(void)
{
int i,sum = 0;

for(i=1;i<=10;)
{
sum = sum+(i+=2);
}
printf("%d\n",sum);

return 0;
}
结果是35.怎么算出来的啊

先是i=i+2
再算sum=sum+i;
当i=1时 sum=0+3=3 i=3
当i=3时 sum=3+5=8 i=5
当i=5时 sum=8+7=15 i=7
当i=7时 sum=15+9=26 i=9
当i=9时 sum=26+9=35 因为先算i=i+2; i=9+2=11>10所以 i=9追问

错了,如果是这么算的话 ,你说的i = 7时这步算错了, 15+9 = 24; 接下来24+9=33;而不是35

追答

你自己可以测试下 就知道我的有没有错
#include "stdio.h"
int main(void)
{
int i,sum = 0;

for(i=1;i<=10;)
{
printf("%d\n",i);
sum = sum+(i+=2);
printf("%d %d",sum,i);
}
printf("%d\n",sum);

return 0;
}
这样就知道我又没有错 我没有运行 不知道结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-24
整个程序是求100以内的偶数之和啊。+2的意思就是两个偶数之间就是相差2,前一个偶数不就是等于下一个偶数+2嘛
第2个回答  2014-09-14
i+=n的意思就是i=i+n,所以i+=2就是i=i+2,你带到程序里就一目了然了,呵呵 每个C++参考书里都有讲解这部分,你可以翻翻书追问

这个我知道 我就是搞不懂那个循环是怎么执行的 怎么得出35这个结果

第3个回答  2014-09-14
i+=2,的意思就是i=i+2,接下来的应该能看懂了吧
相似回答