一列数字排序的问题vb

来源:百度知道 编辑:UC知道 时间:2024/05/08 02:21:27
文本框1=
1
1
2
3
3
300
3
4
4
60

从小到大,从上而下排序. 我的代码错在哪里?
Dim arr
arr = Split(Text1.Text, vbCrLf)
Text1.Text = ""
For i = 1 To UBound(arr)
For j = 1 To i
If arr(i) < arr(j) Then
X = arr(i)
arr(i) = arr(j)
arr(j) = X
End If
Next
Next

For i = 1 To UBound(arr)
Text1.Text = Text1.Text & arr(i) & vbCrLf
Next
原来是val

排序要从arr的下限开始哦。还有,从字符串分割出来的数组元素要在数值上比较大小时,一定要用它们的数值形式进行比较,用Val(a(i))和Val(a(j))比较。

Private Sub Command1_Click()
Dim arr
arr = Split(Text1.Text, vbCrLf)
Text1.Text = ""
For i = 1 To UBound(arr)
For j = 0 To UBound(arr) - i
If Val(arr(j)) > Val(arr(j + 1)) Then
X = arr(j)
arr(j) = arr(j + 1)
arr(j + 1) = X
End If
Next
Next

For i = 1 To UBound(arr)
Text1.Text = Text1.Text & arr(i) & vbCrLf
Next

End Sub

For i = 1 To UBound(arr)
For j = 1 To i
改成:
For i = 0 To UBound(arr)-1
For j = i To UBound(arr)