第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

i++放在運算首位的問題

這里有個疑問,i++放在前面,在進行計算sum,因為前面不是已經(jīng)定義過i=1,那么第一步計算不就成了sum=sum-2了?而且無論i++放在首位還是末位都是一樣的-50,我的理解是i++放在首位不是應該少+一個1了嗎,求解,困惑中

正在回答

4 回答

題目是計算1-2+3-4+...-100的值,

對比三個答案,while和do-while是先自加,再求和;而 for循環(huán)是先求和,再自加,明顯計算是有區(qū)別的。

while和do-while循環(huán)把i++放在前面,實際運算的是2-3+4-5+...-101,值雖然也為-50,卻不對。

for循環(huán)運算的是1-2+3-4+...-100,值為-50,正確。


以while循環(huán)為例,查看每次i自加及sum求和的值。

#include <stdio.h>
int main()
{
??? ?int sum = 0; ?
??? int i = 1;?? ?
??? int flag = 1;
??? while(i<=100)
?? ?{
??????? i++;
?? ??? ?sum+=i*flag;
?? ??? ?printf("%d* %d= %d\n",i,flag,sum);????? //查看每次i自加及sum求和的值
??????? flag*=-1;
??? }
?? ?printf("%d\n",sum);
?? ?return 0;
}



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

確實是少加一個 1 ,用for的話參考代碼是正確的 ,個人認為 前面用do和do...while是有誤的

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

i++是先輸出再加1,所以應該是先輸出1,但是此時電腦里面記下來的應該是2;所以第一次是1,沒有錯的。第二次電腦輸出2,但是記錄下來的是3。。。

0 回復 有任何疑惑可以回復我~
#1

hello_瓜牛 提問者

這樣寫不就是2-3+4-5...-101的嗎
2016-11-07 回復 有任何疑惑可以回復我~

我覺得題目有問題,首先i++放在第一位,此時i值不是應該是2,第一次運算就直接成了sum=2,而不是1了,如果i++放在末位,應該就對了吧,而且放在首位是從2計算到101啊,直接編一個全+到5的,按照i++放在首位得到20,放在末位就得到15,所以我覺得網(wǎng)友那些給的i++放在首位的答案是錯的,有點偷換概念的感覺,雖然答案都是-50.

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

舉報

0/150
提交
取消

i++放在運算首位的問題

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號