第1个回答 2008-04-02
最简单的方法就是利用数组,产生一个数以后就判断前面是否已经有这个数,如果有,那么重新生成这个数。
Private Sub Form_Click()
Dim a(1 To 50) As Integer, i As Integer, j As Integer
Randomize
For i = 1 To 50
a(i) = Int(Rnd * 91 + 10)
For j = 1 To i - 1
If a(i) = a(j) Then i = i - 1
Next j
Next i
For i = 1 To 50
Print a(i);
If i Mod 5 = 0 Then Print
Next i
End Sub
第2个回答 2008-04-03
给你写个函数吧
'生成从iStar开始(包括)到iEnd结束(包括)的iCount个整数的序列,保存到n() as integer数组里
Private Sub NumRnd(iStar As Integer, iEnd As Integer, iCount As Integer, n() As Integer)
Dim i, j
ReDim n(iCount - 1) As Integer
Randomize
n(0) = Int(Rnd * (iEnd - iStar + 1)) + iStar
For i = 0 To iCount - 1
n(i) = Int(Rnd * (iEnd - iStar + 1)) + iStar
For j = 0 To i - 1
DoEvents
If n(j) = n(i) Then i = i - 1: Exit For
Next j
Next i
End Sub
使用方法
dim k() as integer
NumRnd 50, 100, 10, k '生成10个50到100的整数
第3个回答 2013-04-04
Private Sub Command1_Click()
Dim a(1 To 50) As Integer, i As Integer, j As Integer
For i = 1 To 50
Randomize
a(i) = Int(Rnd * 90 + 10)
For j = 1 To i - 1
If a(i) = a(j) Then i = i - 1
Next j
Next i
For i = 1 To 50
Print a(i);
n=n+1
if n Mod 5 = 0 Then ‘每行输出5个数
print
End If
Next i
End Sub
第4个回答 2008-04-02
randomize()
for i=10 to 100
form1.print int(rnd*(100-10+1)+10)
next