vb6中,我就是想输入10个数x(i),计算输出B(i)的值,但是调试的时候说实时错误'9'下标越界,是怎么回事呢?
PrivateSubCommand1_Click()DimiAsInteger,jAsIntegerDimx()AsLong,B()AsLongn=10Fori=1Ton...
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim x() As Long, B() As Long
n = 10
For i = 1 To n
x(i) = InputBox((""))
Next i
For j = 1 To n - 1
B(j) = x(j + 1) - x(j)
Next j
For j = 1 To n - 1
Print B(j)
Next j
End Sub 展开
Dim i As Integer, j As Integer
Dim x() As Long, B() As Long
n = 10
For i = 1 To n
x(i) = InputBox((""))
Next i
For j = 1 To n - 1
B(j) = x(j + 1) - x(j)
Next j
For j = 1 To n - 1
Print B(j)
Next j
End Sub 展开
1个回答
展开全部
很仔细的看了三遍都没发现任何错误啊。 怎么可能出现下标越界? 是不是编译器出问题了???
难道是Dim x() As Long, B() As Long 这里没有指明数组长度导致初始化数组长度不足而越界?
把这句改成 dim x(1to10) as long,b(1to9)as long 这样试试。由于你的数组不是从0开始的而是从一开始所以会导致这个问题的吧。 因为不声明上下界的情况下默认数组是从0开始的。
难道是Dim x() As Long, B() As Long 这里没有指明数组长度导致初始化数组长度不足而越界?
把这句改成 dim x(1to10) as long,b(1to9)as long 这样试试。由于你的数组不是从0开始的而是从一开始所以会导致这个问题的吧。 因为不声明上下界的情况下默认数组是从0开始的。
更多追问追答
追问
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer
Dim x(20) As Long, B(19) As Long
For i = 1 To 20
x(i) = (InputBox(("")))
Next i
For j = 1 To 19
B(j) = x(j + 1) - x(j)
Next j
For j = 1 To 19
Print B(j)
Next j
End Sub
你看,我后来把下标都定义成有限的就可以了,但是我要编的程序是要输入任意个数的,这样显然不能满足要求呢
追答
根据我的意思。你将 i 和j定义成从0开始,循环语句改成 for i=0 to 10试试 另外,你的N=10就已经限定了你的程序最多接收10个数据啊!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询