不好意思,刚才写错了
这个是对的,我用的是50个数测的,你吧50改成4就可以了
Dim a(50), b(100)
Private Sub Command1_Click()
List1.Clear
For i = 1 To 100
b(i) = i
Next i
For i = 0 To 50
j = Int(Rnd * 99) + 1
If b(j) <> 0 Then
a(i) = b(j)
b(j) = 0
Else
i = i - 1
End If
Next i
For i = 0 To 50
For j = i To 50
If a(i) < a(j) Then
m = a(i): a(i) = a(j): a(j) = m
End If
Next j
Next i
For i = 0 To 50
List1.AddItem a(i)
Next i
End Sub
Dim a(4)
Private Sub Command1_Click()
List1.Clear
Rnd Timer
For i = 0 To 4
a(i) = Int(Rnd * 99) + 1
Next i
For i = 0 To 4
For j = i To 4
If a(i) < a(j) Then
m = a(i): a(i) = a(j): a(j) = m
End If
Next j
Next i
For i = 0 To 4
List1.AddItem a(i)
Next i
End Sub
测试过了
Option Explicit
Dim i As Integer
Dim j As Integer
Dim a(1 To 5) As Integer
Private Sub RndSelect()
Randomize
For i = 1 To 5
rLoop: a(i) = Rnd * 9 + 1
If i > 1 Then
For j = 1 To i - 1
If a(i) = a(j) Then
GoTo rLoop
End If
Next j
End If
Next i
End Sub
Private Sub Command1_Click()
Dim s As String
Call RndSelect
For i = 1 To 5
s = s & a(i) & IIf(i = 5, "", ",")
Next
Text1.Text = "选出的5个随机数为" & s
Call DescendSort
s = ""
For i = 1 To 5
s = s & a(i) & IIf(i = 5, "", ",")
Next i
Text1.Text = Text1.Text & vbCrLf & "从大到小排序:" & s
End Sub
Private Sub DescendSort()
Dim temp As Integer
i = 1
j = 1
While (i < 6)
j = i + 1
While (j < 6)
If a(i) < a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
j = j + 1
Wend
i = i + 1
Wend