请教VB中一维数组的比较问题,选出较大的前三位和其下标

如题所述

给你一个事例,看懂了你就知道怎么选了

Private Sub Command1_Click()
Dim A(2, 10) As Integer
Dim I As Integer, J As Integer, TM As Integer
'随机产生10个三位数
Randomize
Me.Print " 这10个数是:"
For I = 1 To 10
A(1, I) = Int(900 * Rnd) + 100
A(2, I) = I
Me.Print A(1, I); ";";
Next I
Me.Print
'对10个数进行由大到小排序
For I = 1 To 9
For J = I + 1 To 10
If A(1, I) < A(1, J) Then
TM = A(1, I)
A(1, I) = A(1, J)
A(1, J) = TM
TM = A(2, I)
A(2, I) = A(2, J)
A(2, J) = TM
End If
Next J
Next I
'排序后的数组前3个就是最大的三个数,输出
Me.Print " 最大的三个数:"
For I = 1 To 3
Me.Print A(1, I); "("; A(2, I); ")"; ";"; '括号内数值为数组下标
Next I
Me.Print
Me.Print
End Sub追问

谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-19
先排序
For i = 0 To UBound(v)
For j = i + 1 To UBound(v)
If Val(v(j)) < Val(v(i)) Then
sTmp = v(j)
v(j) = v(i)
v(i) = sTmp
End If
Next
Next
相似回答