不明白。为什么不可以调用 在线等

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:42:07
这题为2007年春二级试卷上机题的一道编程题
希望有感兴趣的人帮我回答下
在线等。。

Private Sub change(v() As Integer)
Dim i As Integer, s As Integer, sum As Integer
For i = 1 To k
sum = sum + v(i)
Next i
av = sum / k

For i = 1 To k
s = (v(i) - av) ^ 2
Next i
q = Sqr(s / (k - 1))

For i = 1 To k
v = (v(i) - av) / q
List1.AddItem v(i) & v
Next i
End Sub

Option Base 1
Public v() As Integer, k As Integer, av As Double, q As Double
Private Sub Command1_Click()
Dim i As Integer
k = InputBox("请输入样本数据的个数", , 10)
ReDim v(k)
For i = 1 To k
v(i) = Int(Rnd * 999 + 1)
Text1 = Text1 & Str(v(i))
Next i
End Sub

Private Sub Command2_Click()
Call change(v) ‘此处为什么不可以使用已经生成的数组v()
End Sub
还是不行啊。。
谁能告诉我。还有原因

一:v() 要定义在模块里,而且还不能用public
二:如果v() 要定义在模块里,Call change(v) 的V就不能使用,因为V在change事件里有效,其它地方无效,建议你看一下变量的有效范围与变量的生存期之类知识!

Private Sub change(v() As Integer)
和 Private Sub Command1_Click() 写在同一个文件里 或者把Private Sub change(v() As Integer)改成Private Sub change(v As Integer())

类型不匹配...