[問題] 新手請教有關迴圈內的觀念問題

看板C_and_CPP作者 (瀚宇)時間13年前 (2011/02/18 21:39), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
開發平台(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

02/18 21:42, , 1F
sum += score; 在 scanf("%d", &score); 之前
02/18 21:42, 1F

02/18 21:43, , 2F
程式是由上而下循序執行的
02/18 21:43, 2F

02/18 21:43, , 3F
2.sum就是記憶在sum這個變數,不太懂你想問的是什麼
02/18 21:43, 3F

02/18 22:05, , 4F
你第一次回圈執行時還沒輸入數值,sum就和score做相加動作
02/18 22:05, 4F

02/18 22:05, , 5F
這時候score的值還是0,兩者相加當然還是0啊
02/18 22:05, 5F

02/18 22:06, , 6F
你需要做的是把sum += score;這行挪到scanf這行之後
02/18 22:06, 6F

02/18 22:12, , 7F
原理??原PO想要學組語嗎
02/18 22:12, 7F

02/18 22:24, , 8F
感謝各位我懂了!!
02/18 22:24, 8F
文章代碼(AID): #1DNdPvkN (C_and_CPP)