VB程序运行出现下标越界的原因
大家帮我看一下下面哪里出错了Dima(50)AsLongPrivateSubCommand1_Click()Dima(40)AsIntegera(1)=1a(2)=1Fo...
大家帮我看一下下面哪里出错了
Dim a(50) As Long
Private Sub Command1_Click()
Dim a(40) As Integer
a(1) = 1
a(2) = 1
For i = 3 To 50
a(i) = a(i - 1) + a(i - 2)
Next i
Text2.Text = a(40)
End Sub
a(i) = a(i-1) + a(i-2) 有什么错误
这道题是一个数列,1,1,2,3,5,8,,,,求第40项的值。请大家帮帮忙解答 展开
Dim a(50) As Long
Private Sub Command1_Click()
Dim a(40) As Integer
a(1) = 1
a(2) = 1
For i = 3 To 50
a(i) = a(i - 1) + a(i - 2)
Next i
Text2.Text = a(40)
End Sub
a(i) = a(i-1) + a(i-2) 有什么错误
这道题是一个数列,1,1,2,3,5,8,,,,求第40项的值。请大家帮帮忙解答 展开
1个回答
展开全部
最上面的Dim a(50) As Long本没有问题,但是子程序中Dim a(40) As Integer则说明a的下标只能是40(这是优先级的问题,因为你重新定义了,就优先使用这个)。那么For i = 3 To 50能不越界么,呵呵。Dim a(40) As Integer这句话有点多余,可以去掉的。
更多追问追答
追问
去掉之后 ,出现 溢出 错误。怎么办?
追答
必须溢出啊,这个数列很有名的。你想想,2的n次方数列n=50就已经很大了,而这个数列跟2^n出不了多少。你得用双精度型才能满足要求,长整形是绝对不行的。把long该为double
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询