求助找出如何数组越界的啊!!感激不尽啊!!!
我这是一个很长的程序,但是里面有些重复,显示数组越界,L3=0我怎么也想不出为什么会越界。求指点啊!!!前边的没有问题,后边就有了
debug是解决一切运行时错误最好的方式。。 n2 函数里
n2=(1+dcos(x4_)+dcos(x3_-x4_))*(dsin(x3_*r3+x4_*r4))+(dsin(x3_-x4_)-dsin(x4_))*(dcos(x3_*r3+x4*r4))
是否应该为
n2=(1+dcos(x4_)+dcos(x3_-x4_))*(dsin(x3_*r3+x4_*r4))+(dsin(x3_-x4_)-dsin(x4_))*(dcos(x3_*r3+x4_*r4))
另外,如果楼主有一个好的调试器,对于数组越界可以事半功倍。
比如我的编译器(IVF+VS)就会直接提示
forrtl: severe (408): fort: (3): Subscript #2 of the array AD has value 0 which
is less than the lower bound of 1
中断以后就会发现在 825 行
if(ad(l1,l3)+ad(l2,l4)+ad(l1,l4)==3)then
此处的 L3 = 0,而 ad 从 1 开始。所以越界。
至于 L3 为何为 0 ,你需要继续向前追索原因。(由于算法不熟悉,别人较难帮忙) 设置断点,单步调试~~
页:
[1]