回 帖 发 新 帖 刷新版面

主题:随机取数的问题?

请问一下从1-30之间随机取12个整数,并且这12个数据不能有重复的。然后把取出的这12个数据分别显示在12个TEXT控件组中,代码怎么写啊?请大虾们指教!先行谢谢!

回复列表 (共5个回复)

沙发

高手们快来啊!我都想了好多方法,就是不行啊,实在是不会啦!请大家帮帮我啊!

板凳

有个办法是你每生成一个随机数都放进一个数组里,然后下一个生成的数就去和这个数组里的数比较,如果相同,就再生成一个,这个数就不算,直到满足你要生成的个数。

3 楼


 思路我也明白,可就是写不成!下面是我写的,还是有重复的,请帮我改一下,有劳各位啦!
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 楼

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 楼

谢谢!楼上的朋友,问题解决啦!真的是太感谢啦!不过我怎么感觉我写的那个没有你这么复杂啊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册