回 帖 发 新 帖 刷新版面

主题:[求助]一个类型不匹配的问题

以下用来计算杨辉三角的小程序,出错了。请各位帮忙看看错在哪里?在主程序的 call zuhe(num,u,result)这一行就出错,提示"Parameter type mismatch"。这个错在什么地方?请帮助!

DECLARE SUB jiecheng (x1 AS LONG, x0 AS LONG)
DECLARE SUB zuhe (x AS LONG, y AS LONG, xy0 AS LONG)
DIM kong AS INTEGER
DIM num, u, n, result AS LONG
kong = 20
INPUT "n=", n
PRINT
FOR num = 1 TO n
  PRINT SPACE$(kong)
  PRINT "1"
  FOR u = 1 TO num
    CALL zuhe(num, u, result)
    PRINT result;
  NEXT u
  PRINT
  kong = kong - 1
NEXT num
END

SUB jiecheng (x1 AS LONG, x0 AS LONG)
  DIM i AS LONG
  x0 = 1
  FOR i = 1 TO x1
    x0 = x0 * i
  NEXT i
END SUB

SUB zuhe (x AS LONG, y AS LONG, xy0 AS LONG)
  DIM xo, so, yo, s AS LONG
  CALL jiecheng(x, xo)
  s = x - y
  CALL jiecheng(s, so)
  CALL jiecheng(y, yo)
  xy0 = INT(xo / so / yo + .5)
END SUB

回复列表 (共2个回复)

沙发

没人回答,只好自己回答了。
是我犯的一个小错误,忘了在QB中变量的类型定义是要一个一个来的。即:
DIM num, u, n, result AS LONG
应该
DIM num AS LONG, u AS LONG, n AS LONG, result AS LONG
DIM xo, so, yo, s AS LONG
应该改为:
DIM xo AS LONG, so AS LONG, yo AS LONG, s AS LONG

板凳

知道就好了,
在QB里你可以在函数第一行默认定义
deflng n-z

我来回复

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