这个代码是哪里出问题了?求大佬指教
vb吧
全部回复
仅看楼主
level 5
这个代码是哪里出问题了?求大佬指教
2020年11月11日 02点11分 1
level 15
完全错误……(按钮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分 2
懂了,谢谢大佬指正
2020年11月11日 04点11分
大佬,如果查找元素也用调用过程来实现应该怎么写呢,可以给个参考吗?[乖]
2020年11月11日 05点11分
赞一个
2020年11月11日 07点11分
1