vb随机生成10个数,在1到100之间,并且按照从大到小的顺序排成一行

如题所述

Dim shuzu(1 To 10) As Integer
Dim i As Integer

Private Sub Form_Load()
Me.AutoRedraw = True
Randomize
i = 1
For i = LBound(shuzu) To UBound(shuzu)
shuzu(i) = 1 + Int(100 * Rnd())
Print shuzu(i);
Next

Print
paixu shuzu

For i = LBound(shuzu) To UBound(shuzu)
Print shuzu(i);
Next
End Sub

Sub paixu(shuzu() As Integer)
Dim j As Integer
Dim k As Integer
Dim m As Integer
j = 1
k = 1
For j = 1 To UBound(shuzu) - 1
For k = 1 To UBound(shuzu) - 1
If shuzu(k + 1) < shuzu(k) Then
m = shuzu(k)
shuzu(k) = shuzu(k + 1)
shuzu(k + 1) = m
End If
Next
Next

End Sub追问

调试的时候出现未定义 Private Sub Form_Load()

追答

这个是窗体加载事件,怎么会没有定义呢,你是不是把这个程序放其他事件里了?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-20
Private Sub Command1_Click()
Dim A(10) As Integer
Randomize
For I = 0 To 9
A(I) = Int(Rnd * 100 + 1)
Next I
For I = 0 To 8
For J = I + 1 To 9
If A(I) < A(J) Then temp = A(I): A(I) = A(J): A(J) = temp
Next J
Next I
For I = 0 To 9
Print A(I) & space(1) ;
Next
End Sub
第2个回答  2011-06-20
Public Sub CreateRandomData()
Dim datas() As Integer
Dim rndData As Integer

Dim i As Integer
Dim j As Integer

ReDim Preserve datas(0)
datas(0) = Int(100 * Rnd + 1)

For i = 1 To 9
rndData = Int(100 * Rnd + 1)
ReDim Preserve datas(i)
For j = i - 1 To 0 Step -1
If datas(j) >= rndData Then
datas(j + 1) = rndData
Exit For
Else
datas(j + 1) = datas(j)
End If
Next
Next
End Sub追问

程序中缺少一个end sub

追答

不会吧,我测过了,没有问题啊。

相似回答