vb数组排列 在其中插入一个数

这是一条题来的,用问号?表示要填空
Const n = 9
Private Sub Form_click()
Dim a
Dim i%, j%, x%
a = Array(1, 3, 4, 5, 9, 15, 22, 28, 30, 60)
x = InputBox("输入一个整数")
ReDim Preserve a(n + 1)
For i = n To 1 Step -1
If ——?—— Then
a(i + 1) = a(i)
Else
——?——
Exit For
End If
Next i
If i < 1 Then ——?——
For i = 1 To n + 1
Print a(i);
Next i
End Sub
插入后,仍按升序排列

If x < a(i) Then

a(i + 1) = x

a(i+1) = x

虽然回答了,而且输出结果也看不出什么错误,但这个程序本身是有错的,第一个数被吞掉了,如果要显示,还得改动其他地方

还保留升序的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-27
给你一个更单的方法
Sub test()
Dim MyValue, a As Integer
MyValue = InputBox("输入要添加的数", "添加元数", 0)
a = Array(1, 3, 4, 5, 9, 15, 22, 28, 30, 60)'初始数组
For i = LBound(a) To UBound(a)
If MyValue > Val(a(UBound(a))) Then
a(UBound(a)) = a(UBound(a)) & " " & MyValue
Exit For
End If
If MyValue < Val(a(i)) Then
a(i) = MyValue & " " & a(i)
Exit For
End If
Next
a = Split(Join(a)) '结果
'查看结果,可删除
For i = LBound(a) To UBound(a)
Print a(i)
Next
End Sub