VB排序题。。:随即产生10个2位数,按从大到小递减的顺序排列,并显示排序结果。。。。怎么做啊。。。。急

我是新生,编简单点。。。
2025-05-01 06:01:12
推荐回答(3个)
回答1:

Private Sub form_click()
Randomize
Dim tmp As Integer
Dim a(1 To 10) As Integer

Print "排序前为:" '可删除
For i = 1 To 10 '开始随机生成10个数
a(i) = Int(Rnd * 89+10)
Print a(i); ‘可删除
Next i
Print ’可删除
'开始插入排序
For i = 2 To 10
If a(i) > a(i - 1) Then
tmp = a(i)
For j = i - 1 To 1 Step -1
If tmp < a(j) Then Exit For
a(j + 1) = a(j)
Next j
a(j + 1) = tmp
End If
Next i

Print "排序结果:"
For i = 1 To 10
Print a(i);
Next i
Print
End Sub
这个程序将排序前随机的数也显示出来了,比较直观,若不需要删除即可(有可删除标注)。

回答2:

Sub rnddate()
Dim a(1 to 10) As Integer
c = "1234567890"
Print "排序前:"
For i = 1 To 10
a(i) = Mid(c, Int(8 * Rnd) + 1, 1) & Mid(c, Int(9 * Rnd) + 1, 1)
Print a(i)
Next
tt = 0
For i = 1 To 10
For j = i + 1 To 10
If a(i) < a(j) Then
tt = a(i)
a(i) = a(j)
a(j) = tt
End If
Next
Next
Print "排序后:"
For i = 1 To 10
Print a(i)
Next
End Sub

回答3:

1.产生二位的随机数 Int((90*Rnd)+1);
2.排序。
具体做法:定义数组,for循环,每次产生一个随机数读到数组中,然后冒泡排序,打印到窗体上。
够具体了,再不行的话,你就得去看看课本了。