大家帮忙看看哪里错了 说是下标越界

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:15:18
Private Sub Form_click()
Dim i As Integer, j As Integer, t As Integer
Dim a(0 To 9) As Integer
Randomize
Print "原始数据:"
For i = 0 To 9
a(i) = Int(61 * Rnd + 20)
Print a(i);
Next i
Print
For i = 0 To 9
For j = i + 1 To 10
If a(i) > a(j) Then
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Next i
Print "排序结果为:"
For j = 1 To 10
Print a(j);
Next j

End Sub

For j = i + 1 To 10
这一句表示j的最大值是10,而此时a(j)=a(10),毫无疑问就是下标越界了

应该这样:
......
For i = 0 To 8
For j = i + 1 To 9
......
......
For j = 0 To 9
Print a(j)
Next j