作者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