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

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

這樣輸出的值為什么為0,為什么==換成= 就輸出-50,還有 i++在sum的上面,i的值不是先與sum的值改變嗎?

#include <stdio.h>

int main()

{

? ? /* 小伙伴們:

? ? ? ? ? ?選擇你們認為最合理的循環結構完成功能吧 */

? ? int sum = 0; ?//定義計算結果變量sum

? ? int i = 1; ? ?//定義循環數字變量i

? ? int flag = 1; //定義符號狀態變量flag

? ??

? ? //使用while循環

? ? while(i<=100)

? ? { ? ?

? ?i++;?

sum==sum+i*flag;?

? ? ? ? flag *= -1;

? ? }

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

? ??

? ? return 0; ? ?

}


正在回答

1 回答

1、為什么為0?

因為sum==sum+i*flag是個判斷語句,即判斷左右兩邊相不相等,整個表達式值為0;而輸出的sum未做任何賦值處理,為最先賦的初始值0;

2、為什么==換成=就輸出-50,”==”是判斷,“=”是賦值。所以sum=sum+i*flag表示把右邊表達式的值賦給sum,得出結果為-50;

3、?i++在sum的上面,i的值不是先與sum的值改變嗎?

要知道,i++后面加了個分號了,這是一個獨立的語句,運行完這個語句再運行下面的語句,所以先把i自加1再運用到下面的語句去。如果sum=sum*i++,這個時候才是先用i*s,再把i自加1,就是在同個語句中。


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

Cqwcow4151464 提問者

太好了,非常感謝你用心的回答,很詳細很通俗,太感謝了!
2016-11-01 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這樣輸出的值為什么為0,為什么==換成= 就輸出-50,還有 i++在sum的上面,i的值不是先與sum的值改變嗎?

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

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

幫助反饋 APP下載

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

公眾號

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