VB 给一个数组ax() 个数不定 让数组最后从大到小排列

来源:百度知道 编辑:UC知道 时间:2024/06/02 08:03:33
VB 给一个数组ax() 个数不定 让数组最后从大到小排列
要程序代码
问题补充:ax() 全是数字
数组bx() 里面全是字符,但是bx()数组 的排列方式和ax()相对应
比如说 ax(1) ax(2) ax(3) bx(1) bx(2) bx(3)
最后排列为 ax(2) ax(1) ax(3)
那么bx()的数组排列就是 bx(2) bx(1) bx(3)
就这些

没啥分了 不好意思
http://zhidao.baidu.com/question/98026948.html?fr=im
这个地方还有10分 问题一样

按钮是为了测试数据的,跟过程没关系
只要传入2个数组进去,就会排序的

Private Sub Command1_Click()
Dim ax(5) As Integer, bx(5) As String
For i = 1 To 5
ax(i) = Rnd * 20
bx(i) = CStr(Rnd * 20 + 65)
Debug.Print ax(i), bx(i)
Next i
Debug.Print "-----------------"
Call mySort(ax, bx)
For i = 1 To 5
Debug.Print ax(i), bx(i)
Next i
End Sub

Private Sub mySort(ByRef ax() As Integer, ByRef bx() As String)
Dim n As Integer, cx() As String
n = UBound(ax)
ReDim cx(n)

Dim i As Integer, j As Integer, t As String
For i = 1 To n
cx(i) = CStr(ax(i)) & "-" & CStr(bx(i))
Next i

For i = 1 To n - 1
For j = i + 1 To n
If Val(Left$(cx(j), InStr(cx(j), "-"))) > Val(Left$(cx(i), InStr(cx(i), "-"))) Then
t = cx(i)
cx(i) = cx(j)
cx(j) = t
End If
Next j