vb,删除数组中的重复元素

有这样的数组s=(3,1,1,1,1,1,1,4,3,5,3)想把它输出为非重复项,怎么编程,需要完整代码,谢谢... 有这样的数组s=(3,1,1,1,1,1,1,4,3,5,3)
想把它输出为非重复项,怎么编程,需要完整代码,谢谢
展开
 我来答
珈蓝惜梦qF
2019-10-15 · TA获得超过654个赞
知道答主
回答量:33
采纳率:0%
帮助的人:1.3万
展开全部

程序代码如下:

Dim a()

Private Sub Form_Load()

    ReDim Preserve a(1 To 5)

    For i = 1 To 5

        a(i) = i

    Next i

    For i = 1 To 5

        Text1.Text = Text1.Text & "a(" & i & ")=" & a(i) & ";   "

    Next i

    For i = 2 To 4

        a(i) = a(i + 1)

    Next i

    ReDim Preserve a(1 To 4)

    For i = 1 To 4

        Text2.Text = Text2.Text & "a(" & i & ")=" & a(i) & ";   "

    Next i

End Sub

算法总结:

1、插入数组元素和删除数组元素都使用循环交换,插入数组元素是原数组元素往后移动,删除数组元素是将原数组的元素往前移动。

2、插入数组元素,需要先将数组长度加长再增加数组元素;删除数组元素,可以先删除数组元素,再建数组长度缩短。

扩展资料:

数组中元素的插入和删除一般是在己固定序列的数组中插入或除一个元素,使得插入或删除操作后的数组还是有序的。

1、插入

代码如下:

Private Sub Command1 click)

Dim a(10)As Integer

Dim i As Integer, k As Integer

For  i = 0 To 9

a(i) = i*3 +1

Print a(i)

Next i

Print"插入14"

For k =0 To 9

If 14 < a(k) Then  Exit  For

Next k

For i = 9 To k Step 从最后元素开始逐个后移腾出位置

a(i+1)=a(i)

Next i

p5q5o5w5
2010-07-12 · TA获得超过496个赞
知道大有可为答主
回答量:2546
采纳率:0%
帮助的人:450万
展开全部
上面都是用2个FOR循环,我想了一个早上终于弄出个别的方法的哈,不一定比他们的好,不过很新颖哈哈,给你看看
Option Explicit

Private Sub Command1_Click()
Dim s, MyArray, a(), ddd
Dim i As Integer
s = Array(3, 1, 1, 1, 1, 1, 1, 4, 3, 5, 3, 6, 6, 6)

ReDim a(0 To UBound(s))

For i = 0 To UBound(s)

MyArray = Filter(s, s(i))

ddd = Filter(a, UBound(MyArray) & s(i))

If UBound(ddd) < 0 Then

a(i) = UBound(MyArray) & s(i)

Print s(i)

End If

Next i
End Sub
代码测试过了,没问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
熊凌飞
2010-07-12 · TA获得超过1251个赞
知道答主
回答量:226
采纳率:0%
帮助的人:57.5万
展开全部
上面都是用2个FOR循环,我想了一个早上终于弄出个别的方法的哈,不一定比他们的好,不过很新颖哈哈,给你看看
Option Explicit

Private Sub Command1_Click()
Dim s, MyArray, a(), ddd
Dim i As Integer
s = Array(3, 1, 1, 1, 1, 1, 1, 4, 3, 5, 3, 6, 6, 6)

ReDim a(0 To UBound(s))

For i = 0 To UBound(s)

MyArray = Filter(s, s(i))

ddd = Filter(a, UBound(MyArray) & s(i))

If UBound(ddd) < 0 Then

a(i) = UBound(MyArray) & s(i)

Print s(i)

End If

Next i
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcxv1221
推荐于2018-03-28 · TA获得超过880个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:230万
展开全部
Private Sub Command1_Click()
S = Array(3, 1, 1, 1, 1, 1, 1, 4, 3, 5, 3)
For i = 0 To UBound(S)
For j = 0 To i - 1
If S(i) = S(j) Then Exit For
Next
If j = i Then Print S(i)
Next
End Sub
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2032eaa
2010-07-12 · TA获得超过809个赞
知道大有可为答主
回答量:2149
采纳率:100%
帮助的人:1816万
展开全部
Private Sub Command1_Click()
Dim a(20) As Integer

For i = 0 To 20
a(i) = 10 * Rnd
Print a(i) & " ";

Next
Print
For i = LBound(a) To UBound(a)
b = False
For j = LBound(a) To i - 1
If a(i) = a(j) Then
b = True
Exit For
End If
Next
If Not b Then Print a(i) & " ";

Next

End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式