VB编程 将一维数组中10个元素向右循环移n位

用VB6.0企业版编写例如:数组各元素的值依次为:1、3、5、7、9、2、4、6、8、10;向右位移3次后各元素的值依次为:6、8、10、1、3、5、7、9、2、4 。要求,数组各元素及位移次数n使用InputBox()函数输入,移动前和移动后的数据分别打印在窗体上。

'对数组赋值你自己处理一下,给你写了左右移位2个函数。
Option Explicit
Private Sub Form_Activate()
Dim arr(1 To 10) As String, i As Long, s As String
For i = 1 To UBound(arr)
arr(i) = i
s = s & arr(i) & ","
Next
Print s
RightMove arr, 3 '对数组移位3次
s = ""
For i = 1 To UBound(arr)
s = s & arr(i) & ","
Next
Print s
End SubFunction LeftMove(arr, n) '左移位
Dim temp() As String, i As Long
n = n Mod UBound(arr)
ReDim temp(1 To UBound(arr))
For i = n + 1 To UBound(arr)
temp(i - n) = arr(i)
Next
For i = 1 To n
temp(UBound(arr) - n + i) = arr(i)
Next
For i = 1 To UBound(arr)
arr(i) = temp(i)
Next
End FunctionFunction RightMove(arr, n) '右移位
Dim temp() As String, i As Long
n = n Mod UBound(arr) '可能移位超过数组上限,自己理解一下
ReDim temp(1 To UBound(arr))
For i = UBound(arr) - n + 1 To UBound(arr)
temp(i - UBound(arr) + n) = arr(i)
Next
For i = 1 To UBound(arr) - n
temp(n + i) = arr(i)
Next
For i = 1 To UBound(arr)
arr(i) = temp(i)
Next
End Function
温馨提示:答案为网友推荐,仅供参考