这个程序怎么会下标越界呢?急!

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:28:05
Dim i%, j%, n%
n = Val(Text1.Text)
ReDim a(i, j)
For i = 1 To n
Picture1.Print Spc(n - i)
For j = 1 To i
If i = 1 And j <> 1 Then
a(i, j) = 1
End If
If i = j Then
a(i, j) = 1
End If
If i - 1 > 0 And j - 1 > 0 And i <> j Then
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
End If
t = a(i, j)
Picture1.Print t
Next j
Picture1.Print
Next i
End Sub
运行的时候怎么会下标越界呢?

你在程序最开始重新定义了数组定的元素个数:
ReDim a(i, j)

此时i,j都还没有赋值,所以数组a被重新定义为: a(0,0)
呵呵,你后面循环时 i和j都变成了1. 当你给a(1,1)赋值时,当然越界了.