姬野
2019-01-15 19:10
#include <stdio.h>
int main()
{
int i,sum=0;
i=1;
while( i<=100 ) //循环条件应该是什么呢?
{
sum=sum+i;
++i,i++,i=i+1; //这里是不是应该改变循环变量的值
}
printf("100以内所有整数之和为:%d\n", sum);
return 0;
}
++i指的是先完成“加一的运算”,再“赋值”;
i++指的是先“赋值”,再完成“加一的运算”;
i=i+1就是直接赋值,与“i++”没有太大区别。
在这道题里,“++i”与“i++”与“i=i+1”其实是同样的运算。
sum每次赋值完后,i每次就增加1就是正确的。
但是你的答案,用了“ ++i,i++,i=i+1; ”,也就是连续加了3个1,答案肯定错啦。
给你示范一下你的答案循环过程:
1⃣️i=1时:sum=0+i;i=i+1+1+1;
2⃣️i=3时:sum=1+i;i=i+1+1+1;
3⃣️i=6时:sum=4+i;i=i+1+1+1;
4⃣️i=9时:sum=10+i;i=i+1+1+1;
……(这样的结果漏掉了很多数,结果肯定不会是5050了)
可以复习一下3-3那一节
C语言入门
926022 学习 · 20793 问题
相似问题