主题:随机取数的问题?
rppd
[专家分:0] 发布于 2009-03-28 11:43:00
请问一下从1-30之间随机取12个整数,并且这12个数据不能有重复的。然后把取出的这12个数据分别显示在12个TEXT控件组中,代码怎么写啊?请大虾们指教!先行谢谢!
回复列表 (共5个回复)
沙发
rppd [专家分:0] 发布于 2009-03-29 13:07:00
高手们快来啊!我都想了好多方法,就是不行啊,实在是不会啦!请大家帮帮我啊!
板凳
我是大喊三 [专家分:3010] 发布于 2009-03-29 14:45:00
有个办法是你每生成一个随机数都放进一个数组里,然后下一个生成的数就去和这个数组里的数比较,如果相同,就再生成一个,这个数就不算,直到满足你要生成的个数。
3 楼
rppd [专家分:0] 发布于 2009-03-29 16:14:00
思路我也明白,可就是写不成!下面是我写的,还是有重复的,请帮我改一下,有劳各位啦!
Private Sub Command1_Click()
Dim i As Integer
ReDim x(11) As Integer
Randomize
For i1 = 0 To 11
Do
For i = 0 To 11
'产生n个不同的整数
x(i) = Int(Rnd * 29) + 1
For j = 0 To i - 1
If x(i) = x(j) Then
Exit For
End If
Next j
Exit Do
Next i
Loop
Text1(i1).Text = x(i)
Next i1
End Sub
4 楼
我是大喊三 [专家分:3010] 发布于 2009-03-30 03:27:00
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Dim rd As Integer
Dim x(11) As Integer
Randomize
For i = 0 To 11
'产生n个不同的整数
Again:
rd = Int(Rnd * 30) + 1
For j = 0 To i - 1
If x(j) = rd Then GoTo Again
Next j
x(i) = rd
Debug.Print rd;
Next i
Debug.Print
End Sub
5 楼
rppd [专家分:0] 发布于 2009-04-02 15:57:00
谢谢!楼上的朋友,问题解决啦!真的是太感谢啦!不过我怎么感觉我写的那个没有你这么复杂啊!
我来回复