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
展开
 我来答
最方便炒股软件
2013-05-11 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:115万
展开全部
很仔细的看了三遍都没发现任何错误啊。 怎么可能出现下标越界? 是不是编译器出问题了???
难道是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个数据啊!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式