标题菜鸟捉虫(19)
栏目软件世界
发布2001年19期
第17期“菜鸟捉虫”正确答案:
动态数组声明后,要在使用前分配内存空间,在第一个循环前加上ReDim a(Value)即通过编译;在往下的双循环中,主循环中的Form1.CurrentY = PY应放在子循环中的打印之前(因为荧屏打印会自动换行)。程序如下:
Private Sub Command1_Click()
…
If Val(Text1.Text)< 2 Or Val(Text1.Text)> 0 Then
MsgBox "请输入2以上的正整数"
Exit Sub
End If
ReDim a(Value)'// 无此句,错误1处
For i = 0 To Value
…
For j = 1 To Value + 1
PY = PY - 200
L = L + 150
' Form1.CurrentY = PY '//原错误2处
K = K + 100
For i = 0 To b*300 Step 300
Form1.CurrentX = K + L + i
Form1.CurrentY = PY '//荧屏打印定位Y座标应在这儿
…
End Sub
以下是第 17 期“菜鸟捉虫”幸运读者名单(奖品为《电脑报配套光盘》2001年第5期)
河南 张成东 天津 张奎英
山东 彭 雷 上海 沈晓鸣
本期题目:
求从10个数中任选5个数出来的组合,但在运行程序后,却得到错误的结果。请找出其中的错误(注:要求用递归调用)。
本程序有一个CommandButton和一个TextBox控件,程序如下:
Private Sub Command1_Click()
Dim a As Long, b As Long
Dim Answer As Long
a = 10
b = 5
Answer = Recursion(a,b)
Text1.Text = Answer
End Sub
Private Function Recursion(ByVal ValNum As Integer,ByVal Value As Integer)As Long
If Value >= 1 Then Recursion = Recursion *Recursion(ValNum-1,Value-1)
End Function