第1个回答 2011-11-24
由于VB的数组下标可以不为0,所以a(i)与a(n+1-i)的规率可能被破坏,换句话说,在VB的数组中,这种规率是有可能不成立的.比如定义数组a(3 to 5),那么n=3(3,4,5共3个元素), 当i=3时,n+1-i=1,实际上数组中没有a(1)这个元素.
所以下例中,你只需要修改数组定义即可,代码部分不用做任何修改,下面的代码可以直接调试.
Private Sub Form_Load()
Me.Show
Me.AutoRedraw = True
Dim tArr(6 To 20) As String, tStr As String, i As Integer, l As Integer, m As Integer
For i = LBound(tArr) To UBound(tArr)
tArr(i) = i
Me.Print "tArr(" & i & ")=""" & tArr(i) & """"
Next
l = LBound(tArr)
m = UBound(tArr)
For i = 0 To (UBound(tArr) - LBound(tArr) - 1) \ 2 '用整除,如果最后剩一个元素也就无需交换了.
tStr = tArr(l + i)
tArr(l + i) = tArr(m - i)
tArr(m - i) = tStr
Next
For i = LBound(tArr) To UBound(tArr)
Me.Print "tArr(" & i & ")=""" & tArr(i) & """"
Next
End Sub