回 帖 发 新 帖 刷新版面

主题:新手问个简单编程问题

问题 用 function函数实现两数平均值
     
       Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
c = fact(a, b, c)

Print c

End Sub
Private Function fact(x As Integer, y As Integer, z As Integer)
z = (x + y) / 2
这个得出的结果  为什么是0 
我知道编的不对 麻烦给个正确的编法  多谢[em2]

回复列表 (共3个回复)

沙发

Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
Print fact(a, b)
End Sub

Private Function fact(x As Integer, y As Integer) As Integer
fact = (x + y) / 2
End Function

板凳

另一种修改方法:
将command1_click中的
c = fact(a, b, c)
语句改成
fact a,b,c
其他不用改,也可以。

3 楼

在说你原来的程序为什么会得到0的结果。
Private Function fact(x As Integer, y As Integer, z As Integer)
函数的返回值的标识符是fact,而在这个函数中你没有给fact赋值,所以他的默认值是0
c = fact(a, b, c)
的执行分两步,第一步是将a,b,c的值分别代入函数并运算出fact的值(这里是0),在这里c的值由0变成了a和b的平均值。第二步将fact的值赋给c,c有变成了0。所以输出的结果是0

以后有类似的疑难,建议在b = Val(Text2.Text)出设立断点,运行到这里然后按F8单步运行。每执行一步,检查一次个变量的值。自己就可以搞清楚。

我来回复

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