帮我看看这个VB用辗转相除法求最大公约数的程序哪里错了

Private Sub Command1_Click()
Dim a%, b%, c%
a = Val(Text1.Text)
b = Val(Text2.Text)
c = GCD(a, b)
Picture1.Print "最大公约数为" & c
End Sub

Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Function GCD%(m%, n%)
Dim d%
If m = 0 Or n = 0 Then
d = MsgBox("输入不符要求", 64)
If m < n Then
temp = n: n = m: m = temp
If m Mod n = 0 Then
d = n
Else
d = GCD(n, m Mod n)
GCD = d
End If
End If
End If
End Function

Private Function GCD%(m%, n%)
Dim d%
If m = 0 Or n = 0 Then
d = MsgBox("输入不符要求", 64)
else '输入符合要求执行下面代码
If m < n Then
temp = n: n = m: m = temp
end if '交不交换都要执行下面代码
If m Mod n = 0 Then
d = n
Else
d = GCD(n, m Mod n)
'GCD = d
End If
'End If
End If
GCD = d
End Function

或者
Private Function GCD%(m%, n%)
If m * n Then
If m < n Then temp = n: n = m: m = temp
gcd=iif(m Mod n,GCD(n, m Mod n),n)
End If
End Function

温馨提示:答案为网友推荐,仅供参考
相似回答