qxqxaz 发表于 2020-6-17 12:46:24

求助,关于goto循环引起的数组越界问题

运行的时候提示IA数组越界,然后自己查看了下代码,怀疑是KI=I,KI=I-1这里的原因,但不是很确定。所以希望有大神可以指点一下。万分感谢!!!
IF(HIN.LT.0.0) THEN      !为非饱和状态
      IF(INDEX.EQ.0) THEN      !排水
      DO I=1,N
      IF(B(I,1).GT.BC) THEN
      IA(I,1)=-1
      ENDIF
      IF(B(I,M).GT.BC) THEN
      IA(I,M)=-1
      ENDIF
      ENDDO
      DO J=2,M-1
      DO I=1,N
      IF(IA(I,J-1).EQ.-1.AND.B(I,J).GT.BC) THEN
      IA(I,J)=-1
      KI=I
   10 KI=KI-1
      IF(KI.GE.1) THEN
      IF(B(KI,J).GT.BC) THEN
      IA(KI,J)=-1
      GOTO 10
      ENDIF
      ENDIF
      KI=I

vvt 发表于 2020-6-17 13:06:35

根据部分代码,无法推测运行时错误。

liudy02 发表于 2020-6-18 03:30:29

同意楼上
同时,凡是与goto有关的问题,最好的方法是不要用goto
页: [1]
查看完整版本: 求助,关于goto循环引起的数组越界问题