主题:这个题答案老做不对?
hhuxin
[专家分:0] 发布于 2006-09-20 15:19:00
10 p=0
20 x=int(rnd(1)*6)+1
30 if x<>p+1 then 10
40 a(x)=x
50 p=p+1
60 if p<>6 then 20
70 print chr$(a(1)+64),chr$(a(6)+64)
80 end
做不出答案来,原因可能是rnd(1)上,请问答案如何得出
回复列表 (共2个回复)
沙发
maxumi [专家分:2200] 发布于 2006-09-20 15:31:00
10 p=0
20 x=int(rnd(1)*6)+1
30 if x<>p+1 then 10
40 a(x)=x
50 p=p+1
60 if p<>6 then 20
70 print chr$(a(1)+64),chr$(a(6)+64)
80 end
10行-30行: 取一个随机的x, 若x不等于p+1则重新取一个x判断
这和x=p+1有区别么?
板凳
老大徒伤悲 [专家分:29120] 发布于 2006-09-21 11:37:00
10 p=0
20 x=int(rnd(1)*6)+1
30 if x<>p+1 then 10
40 a(x)=x
50 p=p+1
60 if p<>6 then 20
70 print chr$(a(1)+64),chr$(a(6)+64)
80 end
搂主别嫌弃,我来理解以下你的程序意图。
1. 10~60行:首先p从零开始,产生一个随机数,直到这个数等于p+1
2. 出口为p=5,然后打印
既然这样,运行应该如下:
有效循环次数 p值 x值 执行 60行p值
1 0 1 a(1)=1 1
2 1 2 a(2)=2 2
3 2 3 a(3)=3 3
4 3 4 a(4)=4 4
5 4 5 a(5)=5 5
6 5 6 a(6)=6 6
然后输出两个字符,chr$(a(1)+64),chr$(a(6)+64)
这里a(1)=1,a(6)=6
所以这两个字符就是chr$(65)和chr$(70)
[color=FF0000]输出结果和前面的循环、随机数、运算、判断没有任何关系![/color]
所以,建议本程序简化如下:
10 print chr$(65),chr$(70)
20 end
我来回复