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

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

計算100以內整數的和,這樣算出來是5051多了1為什么呢?

#include <stdio.h>

int main()

{

? ? int sum=0;

? ? int i=0;

? ? while( i<=100 )? //循環條件

? ? {

? ? ? ? i++; ? ? ? ? //改變循環變量的值

? ? ? ? sum=sum+i;

? ? }

? ? printf("100以內所有整數之和為:%d\n", sum);

? ? return 0;

}


正在回答

4 回答

?i++; ? ? ? ? //改變循環變量的值

sum=sum+i;

把這兩行的位置互換一下。



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

后會無期_ 提問者

非常感謝!
2017-06-12 回復 有任何疑惑可以回復我~

完整代碼如下:

#include <stdio.h>

int main()

{

? ? int i,sum=0;

? ? i=0;

? ? while( ?i<=100 ?) ?//循環條件應該是什么呢?

? ? {

? ? ? ? sum=sum+i;

? ? ? ? i++; ? ? ? ? //這里是不是應該改變循環變量的值

? ? }

? ? printf("100以內所有整數之和為:%d\n", sum);

? ? return 0;

}


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

冀東奇

你這個也行。
2017-07-17 回復 有任何疑惑可以回復我~

樓主我有點不明白,就是我用電腦運行一遍也是5151但是不明白哪里錯了,第一次循環的的時候sum不是=0+1的嘛?然后依次循環到100嘛?

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

后會無期_ 提問者

是的,我以上代碼錯的點應該是多了一個等于號,起始值沒錯。 由于有了一個等于號,在最后i=100是還會再進入一次循環,代碼順序是i++; sum=sum+i;所以到sum這里,i已經等于101了。所以是多算了一次,就從1加到101了,多了101。希望您能夠幫助你理解。
2017-05-24 回復 有任何疑惑可以回復我~
#2

齊天大圣只有一個

喔喔,這樣子呀,謝謝你的解答哦!然后我按照你的方法在剛開始輸入的是i=1,結果算的是5050,可是我就不明白為什么算的是這個結果?能說一下你理解的第一次循環和最后一次循環是循環體等于什么可以嘛? 還有疑問就是我在書里面看到的都是循環體為sum=sum+i然后再是i++,按照這種方法我把i等于0和1都帶進去算了發現結果都一樣,那是不是說它們的區別就只在于循環的次數上面???
2017-05-24 回復 有任何疑惑可以回復我~
#3

后會無期_ 提問者 回復 齊天大圣只有一個

sum=sum+i;i++;這兩句的前后順序改變的話是會不一樣的,主要區別在于第一次和最后一次循環時累加的起始值和結束值不同,是先計算再自增還是先自增再計算,一個是0加到100,一個是1加到101。
2017-06-12 回復 有任何疑惑可以回復我~

看錯了,是5151,多了101,加多了,應該把i起始值改為1,或者去掉循環條件里的等于號。

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

后會無期_ 提問者

起始值改為1就變成2+3+4+......+100+101=5150了
2017-05-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

計算100以內整數的和,這樣算出來是5051多了1為什么呢?

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

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

幫助反饋 APP下載

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

公眾號

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