关于求阶乘的问题,请高人指点下。
来源:百度知道 编辑:UC知道 时间:2024/06/28 07:36:54
Private Sub Command1_Click()
Dim p As Long, n As Long
p = n
n = 6
For k = n-1 To 2 Step -1
p = p * k
Next
Print p
End Sub
为什么n的值没有传给p?
我认为n为6,可是n的值为0,为什么?
Dim p As Long, n As Long
p = n
n = 6
For k = n-1 To 2 Step -1
p = p * k
Next
Print p
End Sub
为什么n的值没有传给p?
我认为n为6,可是n的值为0,为什么?
运行过程如下:
Private Sub Command1_Click()
Dim p As Long, n As Long
p = n 'n=0,p=n=0
n = 6 'n=6,p没有重新赋值,仍为0
For k = n-1 To 2 Step -1 'k=5 to 2,共循环4次
p = p * k '每次p都是0
Next
Print p '最终p=0,n=6
End Sub
n的值确实是6 只不过你自己将
n赋值给p写在 n=6前面~n初始值就等于0 你都还没把6赋值给n 就先把n=0赋值给p 所以.
程序先执行p = n ,再执行n = 6 ,此时p = 0,n = 6
把两句调换即可:
Dim p As Long, n As Long
n = 6
p = n
For k = n-1 To 2 Step -1
p = p * k
Next
Print p