当前位置:编程学习 > VB >>

请教:如何解决下标越界问题??

Dim Tt(0 To 20, 0 To 1)
For i = 0 To 20
Tt(i, k + 60) = 0.48 * Tt(i + 1, k + 60) + 0.48 * Tt(i - 1, k + 60) + 0.032 * Tt(i, k)
Next i

程序运行时总显示:实时错误9下标越界 应该如何进行修改呢?请赐教! --------------------编程问答-------------------- 没仔细看,不过如果i最后一次等于20
Tt(i + 1, k + 60)  这句里面不就是Tt(21, k + 60)了?  那不就越界了吗? --------------------编程问答-------------------- 你定义的数组是以0作为首地址,所以在for循环中要减1,否则如TT(20)肯定是找不到对象的,因为最后一位是TT(19) --------------------编程问答-------------------- Dim Tt(0 To 20, 0 To 20+60) 
For i = 0 To 20 
Tt(i, k + 60) = 0.48 * Tt(i + 1, k + 60) + 0.48 * Tt(i - 1, k + 60) + 0.032 * Tt(i, k) 
Next i --------------------编程问答-------------------- 看楼上的,
Tt(i + 1 ,这个绝对不会通过的 --------------------编程问答-------------------- 加上错误处理语句,语法严谨些。 --------------------编程问答-------------------- Dim Tt(0 To 20, 0 To 100) 
dim k as integer
if k>40 then 
    msgbox "数据下标越界"
    exit sub
end if
For i = 0 To 20 
Tt(i, k + 60) = 0.48 * Tt(i + 1, k + 60) + 0.48 * Tt(i - 1, k + 60) + 0.032 * Tt(i, k) 
Next i 
--------------------编程问答-------------------- 多谢各位提点了!! --------------------编程问答-------------------- Dim Tt(0 To 20, 0 To 1) 

0 to 1??????? --------------------编程问答-------------------- k是负数吗? --------------------编程问答-------------------- 不管K是几了,按照楼主的代码,最后一个循环(i=20)时,Tt(i + 1, k + 60)就越界了!
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,