例029:计算阶乘和5!+4!+3!+2!+1!

建立一个EXE工程,输入代码:

Sub Form1_Shown(hWndForm As hWnd, UserData As Integer)
  Dim sum As Integer 
   For i As Integer = 5 To 1 Step -1
         sum=sum+Multiply(i)
      Next
      Print sum
End Sub
Function Multiply(ByRef n As Integer) As Integer  
   Dim temp As Integer 
   temp=1
   Do While n > 0
      temp = temp * n
      n=n-1
   Loop
   Multiply=temp
End Function
  1. 运行程序,在控制台上输出120,而正确的结果是153,这是因为参数传递使用了引用传递方式ByRef,导致传进去的n=5直接被改变成了1,所以只求出了5!=120。
  2. 改正的方法有两种,一是将调用语句改为 sum=sum+Multiply((i+0)),因为表达式是值传递的,二是将ByRef改成ByVal。
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值