vb数组排序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 13:32:14
这段代码哪里出错了。。
执行后不正确。我要的是降序排列
代码如下:
Private Sub Form_load()
Form1.Show
Dim shuzu(1 To 5)
Dim i%, j%, tem%
Print "输入前的数组"

For i = 1 To 5
shuzu(i) = InputBox("请输入shuzu(" & i & ")的值")
Print shuzu(i) & " ";
Next i
For i = 1 To 4
For j = i To 5
If shuzu(i) > shuzu(j) Then
tem = shuzu(i)
shuzu(i) = shuzu(j)
shuzu(j) = tem
End If
Next j
Next i
Print vbCrLf & "排列后的数组"
For i = 1 To 5
Print shuzu(i) & " ";
Next i
End Sub
请高手指出错误的原因。。谢谢。。

If shuzu(i) > shuzu(j) Then
是比较符号的问题,你想用的排序办法是“冒泡”,但你每完成一次交换后,shuzu(i)内的值已经变数组shuzu(j)内的值了,即越来越小,“沉降”成了升序排列。所以改成<号。另外 FOR j = i+1 to 5 即可。

For i = 1 To 4
For j = i To 5
If shuzu(j-1) > shuzu(j) Then
tem = shuzu(j-1)
shuzu(j-1) = shuzu(j)
shuzu(j) = tem
End If
Next j
Next i

.......
For i = 1 To 4
For j = i To 5
If shuzu(i) > shuzu(j) Then
tem = shuzu(i)
shuzu(i) = shuzu(j)
shuzu(j) = tem
........
把大于号改小于号