TC官方合作论坛
标题:
关于流程语句的一道题的答案
[打印本页]
作者:
Soeve_278
时间:
2012-10-27 15:55
标题:
关于流程语句的一道题的答案
TC教程考试题目如下:
功能 整型 继续跳出()
整型 a
a=0
循环(a>=0)
a=a+1
如果(a<50)
继续
否则
a=a+2
如果结束
如果(a>100)
跳出
如果结束
循环结束
返回 0
功能结束
上面继续跳出功能中,一共循环了多少次
是循环了75次,还是76次?
官网答案是75次,但是我怎么觉得应该是76次呢?
大大们,帮我算一下,给解个惑吧。
作者:
saga
时间:
2012-10-27 16:02
0---49 50次 a==50时候 接着变成50=50+2=52 52----100=48/2=24+1 50+24+1=75
作者:
Soeve_278
时间:
2012-10-27 16:07
回复
2楼
saga
的帖子
a>100 跳出循环,那么a=100的时候不是还有一次么?
作者:
超自然
时间:
2012-10-27 16:08
+2了
99过去是101,直接走人了
作者:
Soeve_278
时间:
2012-10-27 16:12
回复
4楼
超自然
的帖子
a=0、a=a+1=1的时候是第一次1次,a=50的时候是50次,a=52的时候是51次,100-52=48/2=24次,这个时候是循环了75次吧?此时不是刚好a=100吗?99是怎么算出来的啊,没怎么搞明白呢。
作者:
saga
时间:
2012-10-27 16:30
0到49 是50次吧, 第51次就是 50 那么他到52次的时候就给搞成52了 52+2X=100?==>x=24次 51+24=75次吧 100如果在加个2=? 所以当执行到75次的时候最后一个If语句判断了一下,100+2>100 所以就不再循环了 也就是说只有75次
作者:
saga
时间:
2012-10-27 16:32
不管是99也好 100也好 反正在往下就超过循环条件100 所以这时候就停止循环.
作者:
jimye0526
时间:
2012-10-27 16:33
代码我看不对啊
大于a>50后就每次加3啊
先加1 接着加2
怎么算都不是75 啊
作者:
Soeve_278
时间:
2012-10-27 16:36
回复
6楼
saga
的帖子
按照你的说法 第51次的时候a=50 第52次的时候a=52,那这一次不算吗?你的说法里 这一次没有算上吧。
作者:
saga
时间:
2012-10-27 16:38
飞灵 重点不是这个....
作者:
Soeve_278
时间:
2012-10-27 16:41
回复
7楼
saga
的帖子
99+2=101 这一次是不算的 如果刚好=100 又没有>100,那这要算一次吧?难道不算?
作者:
saga
时间:
2012-10-27 16:57
如果真的是100 那后面不是还有个+2么...所以你说的其实是98的时候的事情. 不过这段代码的确是有问题 哈哈. 应该是这样的:
循环(a>=0)
if(a<50)
a=a+1
else
a=a+2
endif
if(a>100)
break
endif
循环结束
当给a+2 或者+1后还有个判断 那就是 如果大于100就退出循环 所以一旦a变成100就停止了循环 原因是100符合第一个a=a+2条件那么久变成102 也符合第二个条件a>100 那么也就停止了循环.这个循环的作用就是给a加值 没有其他功能 跳出循环的条件判断是值变化后 不是变化前..变化前(循环一次后)的判断是判断+1呢还是+2
作者:
saga
时间:
2012-10-27 17:12
官方的代码 小于50就一直是+1 后面的代码不会执行的 因为继续了 继续就是从循环开头继续下一次,所以0+x=49==>x=49 当a=49的时候循环给a+1=50这时候条件a<50不成立了 所以在一次执行50=50+2==>52 之后都是循环一次加3点 52+3X=100==>48/3=16次 a=(a=0的一次)+(第51次 就是a值=52的那一次)+49次+16=67次 看代码的时候没注意到那个继续...诱导了楼主 请见谅..
作者:
Soeve_278
时间:
2012-10-27 17:17
回复
13楼
saga
的帖子
么事,谢谢你这么耐心哦。你的回复我采纳咯
作者:
saga
时间:
2012-10-27 17:23
既然是回答那么就得负责任 不然就叫灌水了
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1