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

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

輸出結果為啥是50?

#include <stdio.h>

int main()

{

//初始化?

int i=1;

int flag=1;

int sum=0;

//判斷符號?

while(i<=100)

? ? {

? ? ? ? ++i;

? ? ? ? if(i%2==1)

? ? ? ? {

? ? ? ? flag=1;

????????}

????????else

????????{

????????flag=-1;

????????}

? ? sum+=flag*i;

? ? }

//輸出?

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

? ? return 0;

}



正在回答

2 回答

把++i;移到下面去,你做的相當于是2到101了

#include?<stdio.h>

int?main()

{

//初始化?

int?i=1;

int?flag=1;

int?sum=0;

//判斷符號?

while(i<=100)

????{

????????if(i%2==1)

????????{flag=1;}

????????else

????????{flag=-1;}

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

? ? ? ? ++i;

????}

//輸出?

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

????return?0;

}


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

慕課小布丁

‘++i’到后面第一個‘;’的時候就已經是‘+1’的值了
2019-10-22 回復 有任何疑惑可以回復我~
#2

qq_慕工程4271860 提問者

那么這個放在后面去了,從思維邏輯上怎么理解,先判斷再自增嗎? 自增不是對判斷有影響嗎? 謝謝
2019-10-22 回復 有任何疑惑可以回復我~
#3

qq_慕工程4271860 提問者 回復 慕課小布丁

想通了,i++為獨立表達式時是一個動作,會產生取值變化。如果取值a=i++;則a取i自增前的值。
2019-10-22 回復 有任何疑惑可以回復我~
#4

pghao

flag 可以用取反直接解決嗎,我用取反證明不了
2020-02-15 回復 有任何疑惑可以回復我~
查看1條回復

要么改為i++,要么把++i,放到后面,

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

qq_慕工程4271860 提問者

這個沒有影響
2019-10-22 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

輸出結果為啥是50?

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

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

幫助反饋 APP下載

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

公眾號

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