作者harristime (瀚宇)
看板C_and_CPP
標題[問題] 新手請教有關迴圈內的觀念問題
時間Fri Feb 18 21:39:03 2011
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev C++
問題(Question):
小弟我初學C語言,最近卡在迴圈這關
以下面的程式來說
int main (){
int score = 0;
int sum = 0;
int count = -1;
while(score != -1){
++count;
sum += score;
printf("請輸入成績:");
scanf("%d", &score);
printf("%d\n", sum); <---這兩行是我想搞懂這兩個
變數在每次迴圈內的數值才打的
printf("%d\n", score);
}
return 0;
}
我想請教各位高手的是
1.在第一次迴圈執行時,成績我輸入100,輸出sum的值為什麼是0?
而不是100,而第二次迴圈我再給一次100,sum才變100?
我的死觀念覺得第一次的迴圈內sum就因為sum +=scorec後變成100了
2 . sum 輸出的值會一直累加,但它是記憶在哪裡呢?可以教我一下原理嗎?
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.162.174
→ james732:sum += score; 在 scanf("%d", &score); 之前 02/18 21:42
→ james732:程式是由上而下循序執行的 02/18 21:43
→ james732:2.sum就是記憶在sum這個變數,不太懂你想問的是什麼 02/18 21:43
推 Seilon:你第一次回圈執行時還沒輸入數值,sum就和score做相加動作 02/18 22:05
→ Seilon:這時候score的值還是0,兩者相加當然還是0啊 02/18 22:05
→ Seilon:你需要做的是把sum += score;這行挪到scanf這行之後 02/18 22:06
→ stupid0319:原理??原PO想要學組語嗎 02/18 22:12
→ harristime:感謝各位我懂了!! 02/18 22:24