求大佬解釋下:++i,i++,i=i+1; 這個(gè)含義,為什么結(jié)果變成了1717了。謝謝!
#include <stdio.h>
int main()
{
??? int i,sum=0;
??? i=1;
??? while(?? i<=100? )? //循環(huán)條件應(yīng)該是什么呢?
??? {
??????? sum=sum+i;
???????? ++i,i++,i=i+1;???????? //這里是不是應(yīng)該改變循環(huán)變量的值
??? }
??? printf("100以內(nèi)所有整數(shù)之和為:%d\n", sum);
??? return 0;
}
2022-03-29
老師,你的github賬號(hào)可以公開(kāi)嗎?希望能有看到你的demo的源碼。
ozigukliywbfktfrxelnojwelkfjzhicqcmgbaqmewazfniljaqppjtkwurxllihajdnwvwpledmlwgmlwuotnudmnoepuqapumdfsqmurxyxsdqvhvcuua
2019-01-15
++i指的是先完成“加一的運(yùn)算”,再“賦值”;
i++指的是先“賦值”,再完成“加一的運(yùn)算”;
i=i+1就是直接賦值,與“i++”沒(méi)有太大區(qū)別。
在這道題里,“++i”與“i++”與“i=i+1”其實(shí)是同樣的運(yùn)算。
sum每次賦值完后,i每次就增加1就是正確的。
但是你的答案,用了“?++i,i++,i=i+1;?”,也就是連續(xù)加了3個(gè)1,答案肯定錯(cuò)啦。
給你示范一下你的答案循環(huán)過(guò)程:
1??i=1時(shí):sum=0+i;i=i+1+1+1;
2??i=3時(shí):sum=1+i;i=i+1+1+1;
3??i=6時(shí):sum=4+i;i=i+1+1+1;
4??i=9時(shí):sum=10+i;i=i+1+1+1;
……(這樣的結(jié)果漏掉了很多數(shù),結(jié)果肯定不會(huì)是5050了)
可以復(fù)習(xí)一下3-3那一節(jié)