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

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

為什么while和for答案不一樣

#include <stdio.h>

int main()

{

? ? /* 小伙伴們:

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

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

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

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

? ??

? ? //使用while循環

? ? while(i<=100)

? ? {

? ? ? ? i++;

? ? ? ? if(i%2==0){

? ? ? ? ? sum-=i;

? ? ? ? }

? ? ? ? else{

? ? ? ? ? ? sum+=i;

? ? ? ? }

? ? ? ??

? ? }

? ? /*

? ? //使用for循環

? ? for(i=1;i<=100;i++)

? ? {

? ? ? if(i%2==0){

? ? ? ? ? sum-=i;

? ? ? ? }

? ? ? ? else{

? ? ? ? ? ? sum+=i;

? ? ? ? }

? ? }? */

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

? ??

? ? return 0;? ??

}

while循環出來答案是50,for循環答案是-50,為什么不一樣啊?

正在回答

5 回答

while循環時用i++,if里的i是不加1的,那么sum=-1+2-3+4......+100。

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

零夜風語

抱歉,之前說的不對。 i是+1了的。但是sum=-2+3-4+5......+101=50
2018-10-07 回復 有任何疑惑可以回復我~
#2

慕沫 提問者 回復 零夜風語

謝謝哈,明白了
2018-10-08 回復 有任何疑惑可以回復我~

把while的i++放循環最后就行了

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

好吧。。。是我看錯了.不好意思

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

我怎么感覺是因為第一個循環結束,i和sum沒有歸零導致-50.

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

原因就是i++,while中當i=100時,循環再進行一次,i++就變成101了,所以sum加到了101。for循環當i=100時,循環進行一次,i++變成101就終止循環了。

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

舉報

0/150
提交
取消

為什么while和for答案不一樣

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

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

幫助反饋 APP下載

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

公眾號

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