回 帖 发 新 帖 刷新版面

主题:急:一个关于Qbasic 的sub子过程中的数组付值问题

我最近在编一个有限元的Qbasic程序,遇到了一个问题,这是一个程序请大家帮忙看看是什么问题:
OPTION BASE 1
DIM SHARED D(3) AS INTEGER ,H(3) AS INTEGER 
FOR J= 1 TO 3
  D(J)=J
NEXT J
FOR J= 1 TO 3
   CALL B(J)
NEXT J
END
 
SUB B(J)
    FOR J=1 TO 3
    PRINT D(J)  
    PRINT H(J)=D(J)
   NEXT J
END SUB
结果显示是1,0,2,0,3,0两个都是全局变量,H(1)=1,H(2)=2,H(3)=3,才对啊。
而且我把程序改成下面这个它又正常了。
OPTION BASE 1
DIM SHARED D(3) AS INTEGER ,H(3) AS INTEGER 
FOR J= 1 TO 3
  D(J)=J
NEXT J
FOR J= 1 TO 3
   PRINT H(J)=D(J)
NEXT J
显示结果为1,1,2,2,3,3
小弟在这里请哪位高手解答解惑。不胜感激。

回复列表 (共2个回复)

沙发

第二段程序在我的QB里显示结果为
0
0
0
不知道跟你的QB有没有什么不同,
说不定你家的QB跟C语言有亲戚关系.

板凳


SUB B(J)
    FOR J=1 TO 3
    PRINT B(J)  
    PRINT H(J)=D(J) ???这里H(J)没赋值
   NEXT J
END SUB
'--------------------------
OPTION BASE 1
DIM SHARED D(3) AS INTEGER ,H(3) AS INTEGER 
FOR J= 1 TO 3
  D(J)=J
  H(J)=J
NEXT J
FOR J= 1 TO 3
   CALL B(J)
NEXT J
END
 
SUB B(J)
    FOR J=1 TO 3
    PRINT D(J)  
    PRINT H(J)=D(J)
   NEXT J
END SUB

这样就行了

我来回复

您尚未登录,请登录后再回复。点此登录或注册