level 5
完全错误……(按钮1虽然不能说错误,但是有些地方可以改得更好一些)
先说按钮1,没必要在循环中使用ReDim Preserve,只要在循环之前执行一次ReDim a(10)就可以了
再说真正有错误的地方,
正确的
算法应该是这样的:
点击按钮2时,输入一个数,然后循环查找数组中这个数的位置,如果找到了,再调用过程delete删除这个数(这里就不是循环调用了,调用一次就可以了),最后再循环输出删除之后剩余的数
delete的执行过程为:从参数x指定的位置开始循环,将后续的每个数字前移,然后ReDim Preserve删掉一个元素
正确算法的参考代码:
Private Sub Command2_Click()
Dim n As Integer, i As Integer
n = Val(InputBox("请输入要删除的数据:"))
For i = 1 To 10
If x = a(i) Then Exit For
Next i
If i > 10 Then
MsgBox "输入的数字不在数组中!"
Exit Sub
End If
delete a, i
For i = 1 To 9
List2.AddItem a(i)
Next i
End Sub
Private Sub delete(b() As Integer, x As Integer)
Dim i As Integer
For i = x To UBound(b) - 1
b(i) = b(i + 1)
Next i
ReDim Preserve b(UBound(b) - 1)
End Sub
2020年11月11日 03点11分


