求助,找出我错哪了问题是:用 Dim 声明数组 a 并用 A
vb吧
全部回复
仅看楼主
level 5
jjprejudice 楼主
求助,找出我错哪了
问题是:
用 Dim 声明数组 a 并用 Array 赋值(数组元素的个数及每个元素的值自己设定),从键盘上输入一个数据,在数组中进行查找:如果数组中有,则删除数组中的这个元素; 如果没有则提示“还没有这个数。你想让它成为第几个数?”,用户输入该数需要插入的位置,并将该数插入到用户指定位置。
2020年05月16日 16点05分 1
level 5
jjprejudice 楼主
Private Sub Command1_Click()
Dim a(), n%, s%, u%, i%, j%
a = Array(33, 56, 12, 26, 78, 2, 47)
n = Val(InputBox("输入要查找的一个数"))
u = UBound(a)
For i = 1 To u
If a(i) = n Then
If i = n Then
u = u - 1
i = i - 1
ReDim Preserve a(u)
Exit For
End If
u = u - 1
For j = i To u
a(j) = a(j + 1)
Next
Exit For
End If
Next i
If i > u Then
s = Val(InputBox("还没有这个数,你想让它成为第几个数?"))
u = u + 1
ReDim Preserve a(u)
For i = u - 1 To s Step -1
a(i + 1) = a(i)
Next
a(s) = n
End If
For i = 1 To u
Print a(i);
Next
End Sub
2020年05月16日 16点05分 2
这个代码中If i = n Then是这样吗?我看不懂。。
2020年05月17日 01点05分
@JYingty 打错了,if i=u
2020年05月17日 06点05分
@JYingty 我重新写了代码
2020年05月17日 06点05分
在楼下,比这个简洁一点,也许会更好理解
2020年05月17日 06点05分
level 5
jjprejudice 楼主
上面是我的代码,可以运行,但是出在一个问题就是,无论我怎么出一个数,我第一个数组中的数总会没了
2020年05月16日 16点05分 3
level 5
jjprejudice 楼主
我不知道怎么改
2020年05月16日 16点05分 4
For i = u - 1 To s Step -1改成For i = u - 1 To s-1 Step -1 a(s) = n改成a(s-1)=n
2020年05月17日 02点05分
@JYingty 不行!我改好了,前头加个option base 1就行了。因为第一个数的原本定义是0
2020年05月17日 06点05分
level 5
jjprejudice 楼主
求大佬帮忙
2020年05月16日 16点05分 5
level 5
jjprejudice 楼主
dd
2020年05月16日 16点05分 6
level 2
a数组应该从0下标开始
2020年05月16日 16点05分 7
好的,谢谢
2020年05月17日 06点05分
level 5
jjprejudice 楼主
Option Base 1
Private Sub Command1_Click()
Dim a(), n%, s%, u%, i%, j%
a = Array(33, 56, 12, 26, 78, 2, 47)
n = Val(InputBox("输入要查找的一个数"))
u = UBound(a)
For i = 1 To u
If a(i) = n Then
u = u - 1
ReDim Preserve a(u)
For j = i To u - 1
a(j) = a(j + 1)
Next
Exit For
End If
Next i
If i > u Then
s = Val(InputBox("还没有这个数,你想让它成为第几个数?"))
u = u + 1
ReDim Preserve a(u)
For i = u - 1 To s Step -1
a(i + 1) = a(i)
Next
a(s) = n
End If
For i = 1 To u
Print a(i);
Next
End Sub
2020年05月17日 06点05分 8
这个可以了,谢谢吧友
2020年05月17日 06点05分
1