看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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