VB程序~~在线等~~

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:33:49
阅读下列程序,程序运行后,单击窗体,输入“1”后,写出窗体上输出结果。
【程序】
Private Sub Form_click()
Dim a(11) As Integer
a(1) = 20: a(2) = 18: a(3) = 15: a(4) = 13: a(5) = 12
a(6) = 8: a(7) = 7: a(8) = 5: a(9) = 3: a(10) = 2
x = Val(InputBox("x="))
For i = 1 To 10
If x > a(i) Then Exit For
Next i
pos = i
For j = 10 To pos Step -1
a(j + 1) = a(j)
Next j
a(pos) = x
For i = 1 To 11
Print a(i);
Next i
Print
End Sub
能解释下原因么?步骤详细点~~拜托了
pos = i '这时i=11,为什么是11?

这段程序的目的是:当单击窗口(空白的)时,弹出一个“X=”的输入框,然后把输入的数字插入到a数组中,插入的位置是比输入的X大之后并且比X小之前,X插入的原位置及后面的数字依次后移,因为原来11个数的数组只有前10个有值,所以依次后移后正好11个数字,最后再把数组a依次输出到窗口中。

Private Sub Form_click()
Dim a(11) As Integer '定义数组
a(1) = 20: a(2) = 18: a(3) = 15: a(4) = 13: a(5) = 12
a(6) = 8: a(7) = 7: a(8) = 5: a(9) = 3: a(10) = 2 '数组赋值
x = Val(InputBox("x=")) '要求输入X
For i = 1 To 10
If x > a(i) Then Exit For '得到插入X的数值的位置,就是Exit For时的i值
Next i
pos = i
For j = 10 To pos Step -1
a(j + 1) = a(j)
Next j '把数组中插入位置及后面的数依次后移
a(pos) = x '插入X
For i = 1 To 11
Print a(i);
Next i '输出到窗口
Print '这句相当于回车换行
End Sub

Private Sub Form_click()
Dim a(11) As Integer
a(1) = 20: a(2) = 18: a(3) = 15: a(4) = 13: a(5) = 12
a(6) = 8: a(7) = 7: a(8) = 5: a(9) = 3: a(10) = 2
x = Val(InputBox("x=")) '输入1,就是x=1
For i = 1 To 10
If x > a(i) Then