作者flameofcray (變態殺人犯)
看板Army-Sir
標題[問題] 101計概第5題
時間Mon Jan 28 22:11:24 2013
爬文好像沒看到有人問 不知道是不是我太弱了QQ
請判斷以下 C 或 C++程式語言 do…while 程式片段會執行幾次:
s=0;
i=1;
do{ s=s+i;
i=i+1;
} while ( i <= 100);
個人完全沒學過 憑直覺猜是從0一路加到101?
不過這樣會是101次 跟答案100次不合
請問板上大大可以幫忙解惑嗎 謝謝>"<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.125.206
1F:推 phisixersai:執行第一次後i等於2 這時判斷while 小於等於100 01/28 22:14
2F:→ phisixersai:所以會在跳到do裡面 01/28 22:14
3F:→ phisixersai:(目前執行過一次了) 這時在執行一次 i等於3 01/28 22:15
4F:→ phisixersai:以此類推 當i等於n時 do 裡面執行了n+1次 01/28 22:15
5F:→ flameofcray:哦所以第一次不是0+1是1+1囉 感謝~ 01/28 22:16
6F:→ phisixersai:上面打錯= = i等於n時 do 裡面執行了n-1次 才對 01/28 22:16
7F:→ phisixersai:不會XD 01/28 22:16
8F:→ flameofcray:那s=s+i(0+1?)那行並不代表執行 是這樣嗎@@? 01/28 22:18
9F:推 phisixersai:那邊也有執行! 01/28 22:20
10F:→ phisixersai:不過 題目的意思應該是問說 do 整個被執行幾次 01/28 22:20
11F:→ phisixersai:s應該是個煙霧彈 01/28 22:21
12F:→ flameofcray:咦 那不就是從0+1執行到100+1 這樣不是101次嗎@@ 01/28 22:21
13F:→ phisixersai:如果題目是問說 do "裡面的敘述"被執行了幾次 01/28 22:21
14F:→ phisixersai:那就是200次 01/28 22:21
15F:→ phisixersai:可是你看 while的判斷式裡面 只有判斷i這個變數 01/28 22:22
16F:→ phisixersai:所以我們可以看i就好了 不用管s的內容 01/28 22:22
17F:→ phisixersai:do...while的定義是 判斷while小括號內的邏輯 01/28 22:23
18F:→ phisixersai:是否為1 是的話 就執行do的內容 否的話 則跳出 01/28 22:24
19F:→ flameofcray:哦哦所以第一次執行是{0+1 1+1} 而0+1那次不用理他 01/28 22:24
20F:→ flameofcray:這樣嗎 01/28 22:24
21F:→ phisixersai:沒錯! 01/28 22:24
22F:→ flameofcray:太感激了QQQ 01/28 22:25
23F:推 ichuankshs:推一樓帥哥 01/28 22:41
24F:推 phisixersai:樓上 112神拳 一全帥哥 01/28 22:49
25F:推 tomdavis: i起始值為1 最後一次執行為 i = 100 總共 100次 01/28 23:02
26F:→ x60066:do while是後判定 先做do 後做while 01/28 23:05
27F:推 Schrodingers:樓上一語道破P大 幾十行的推文 01/28 23:24
28F:→ Schrodingers:我看樓上就懂了XD 01/28 23:25
29F:推 phisixersai:不好意思 小弟比較弱 01/28 23:30
30F:推 percentage:台大阿裕‧誰與爭鋒 01/29 01:00
31F:推 aspes:s=s+i 當作計數器 01/29 15:45
32F:→ aspes:看錯XD 01/29 15:56
33F:推 xa9277178:第一次的時候i=2,第99次(又做了98次),2+98=100 01/29 18:49
34F:→ xa9277178:這裡不能停,因為條件=100繼續做,因此第100次=101, 01/29 18:49
35F:→ xa9277178:判斷不合,停止。 01/29 18:49