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

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

哪位大神看看,為什么i++; sum+=flag*i;這兩個順序不一樣,結果卻一樣?難道程序不是按步驟一步步來的嗎?

#include <stdio.h>

int main()

{? ??

? ? int sum = 0;??

? ? int i = 1;? ??

? ? int flag = 1;?

? ? while(i<=100)

? ?{? ?

? ?i++;

? ? ? ?sum+=flag*i;? ? ??

? ? ? ?flag*=-1;

? ?}

? ? printf("sum=%d\n",sum);?

? ? return 0;? ??

}


正在回答

3 回答

i++在后面的情況是從? 1執行執行到100結束,最后一個數字是-100結果是-50。當i++在前面(如你寫的代碼),這種情況是從2執行,執行到101,最后一個數字是-101結果也是-50。第一種情況的最后一次是執行完了sum+=-100? , i++就是100+1=101,然后再進入循環判斷101<=100,然后語句結束,第二種情況是最后一次進入判斷的是i=100,while(100<=100) 進入循環體 i++就是 100+1=101,sum+=-101, 這時候才算結束。這樣兩次的結果就都是-50了。不知道我這樣說是否明白。

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

慕雪4536758 提問者

非常謝謝
2020-02-27 回復 有任何疑惑可以回復我~
#2

weixin_慕斯3464934

我不明白。。。
2020-03-07 回復 有任何疑惑可以回復我~

我不明白。。。求指教。

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

同學你得先理解i++

正是因為i++時i首先仍取原值

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

舉報

0/150
提交
取消

哪位大神看看,為什么i++; sum+=flag*i;這兩個順序不一樣,結果卻一樣?難道程序不是按步驟一步步來的嗎?

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

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

幫助反饋 APP下載

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

公眾號

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