麻烦高人将程序计算过程写出来,我对下我哪里出错了。

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:40:38
Private Sub Form_Click()
Dim m As Integer, i As Integer, x(10) As Integer
For i = 1 To 4: x(i) = i + 1: Next i
For i = 1 To 2: Call prioc(x): Next i
For i = 0 To 4: Print x(i);: Next i
End Sub

Private Sub prioc(a() As Integer)

Do
a(i) = a(i) + a(i + 1)
i = i + 1
Print a(i)
Loop While i < 2
End Sub
我计算的和程序运行的结果不一样。说明计算的过程。

For i = 1 To 4: x(i) = i + 1: Next i

x1=2 x2=3 ..... x4=5

For i = 1 To 2: Call prioc(x): Next

i=1时 a(0)=0 a(1)=2 a(2)=3
而Sub prioc中 i与Sub Form_Click() 中i非一个i
a(i) = a(i) + a(i + 1)
i = i + 1 i没定义默认为0
Print a(i)
Loop While i < 2
i=0时
a(0)=2
a(1)=2
i=i+1
i=1
print a(i)输出a(i)
此时i=1 输出2
i=1时
a(1)=2
a(2)=3
a(i) = a(i) + a(i + 1)
a(1)=5
i=i+1
i=2
print a(i) 输出a(2)
输出3

For i = 1 To 2: Call prioc(x): Next
当这个i变为2时候Sub prioc(a() As Integer) 内i初始仍为0
此时
a(0)=2
a(1)=5
a(i) = a(i) + a(i + 1) i=i+1后
a(0)=7
i=1
print a(i) 输出a(1)的值 输出5

当i为1时候
a(1)=5
a(2)=3
a(i) = a(i) + a(i + 1) i=i+1后
a(2)=3 a(1)=8
i=2
print a(i)输出a(2) 即3

所以For i = 1 To 2: Call prioc(x): Next i
输出为2 3 5 3

而此时x()为
x0 1 2 3 4
7 8 3 4 5
所以For i =