亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求大佬解釋下:++i,i++,i=i+1; 這個含義,為什么結果變成了1717了。謝謝!

#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;
}

正在回答

2 回答

老師,你的github賬號可以公開嗎?希望能有看到你的demo的源碼。

ozigukliywbfktfrxelnojwelkfjzhicqcmgbaqmewazfniljaqppjtkwurxllihajdnwvwpledmlwgmlwuotnudmnoepuqapumdfsqmurxyxsdqvhvcuua

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那一節


3 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

求大佬解釋下:++i,i++,i=i+1; 這個含義,為什么結果變成了1717了。謝謝!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號