假設你的數組為 x(100)n=100for i=1 to nfor j=i+1 to nif x(i)=x(j) then for k=j to n-1 x(j)=x(j+1) next k n=n-1end ifnext jnext i'以上代碼是去除重復元素for i=1 to nif x(i)=8 then for j=i to n-1 x(j)=x(j+1) next j n=n-1end ifnext i'以上代碼是去除大于等于8的數
成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網技術服務公司,擁有項目成都網站設計、網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元拜城做網站,已為上家服務,為拜城各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
比如數組a。里面有5個值,其中有3個是重復的?
如果這樣的話,很好辦哦。
新建一個數組b,然后遍歷要去除的數組a,
從a中把每一個都取出來,和新建的b里面的去比,如果有相同的,則不放入b,
否則就放入數組b,直到循環(huán)結束。
下面是去重的,你要把text1的數組都去的話 需要分拆開來可以用split函數。
Private Sub Command1_Click()
Dim s As String, i As Integer, n
n = InputBox("輸入要去重")
i = 1
Do While i Len(n)
n = Mid(n, 1, i) Replace(Right(n, Len(n) - i), Right(s, 1), "")
i = i + 1
Loop
Debug.Print n
End Sub
具體思路:
實現(xiàn)2次循環(huán),一個數組循環(huán)2次,外循環(huán)數組,得出一個值a,然后內循環(huán),將a與自身所在的數組的值對比一次,計算出現(xiàn)次數或者設置為空,如果計算出現(xiàn)次數可以計算次數大于2時候,進行刪除操作。如果設置為空,等于進行刪除操作。
具體代碼如下:
Option?Explicit
Function?Delete3(Arr?As?Variant)?As?Variant
Dim?i?As?Integer
For?i?=?LBound(Arr)?To?UBound(Arr)
If?i??UBound(Arr)?Then?Exit?For??//累計器大于數組長度,退出循環(huán)
If?Arr(i)?=?3?Then
Do
Dim?j?As?Integer
For?j?=?i?To?UBound(Arr)?-?1 ??//數組從新賦值
Arr(j)?=?Arr(j?+?1)
Next?j
If?LBound(Arr)?=?UBound(Arr)?Then
Delete3?=?Empty ?//刪除相同元素
Exit?Function
End?If
ReDim?Preserve?Arr(LBound(Arr)?To?UBound(Arr)?-?1)
? ? ? ? ? //從新定義數組長度
If?i??UBound(Arr)?Then?Exit?For??//累計器大于數組長度,退出循環(huán)
Loop?While?Arr(i)?=?3
End?If
Next?i
Delete3?=?Arr
End?Function
Sub?Test()
Delete3?(Array(3,?3,?3,?3,?1,?3,?7,?3,?3,?3,?9,?3,?3))
End?Sub
測試結果:驗證方式通過計算刪除元素后的數組長度確認實現(xiàn)功能,輸入了Array(3,?3,?3,?3,?1,?3,?7,?3,?3,?3,?9,?3,?3),長度為13(從1開始算),刪除后長度為3,而且只有3個元素是不重復的。說明功能正常。
根據描述的要求是這樣的吧:在每個文本框內抽一個數進行組合并從小到大排序,當一個組合出現(xiàn)重復數字時舍去,把無重復數字并且排好序的所有數字組合加入list1列表框。
為了實現(xiàn)篩選組合和排序最好增加一個函數:“排序并去重”目的是把抽出6個數字進行排序并檢查是否有重復數字。如有重復返回false表示此組合舍去。因此上述代碼可以如下調整:增加bb數組變量及“排序并去重”函數,bb保存抽出的6個數字,并作為函數的參數進行排序對比處理。
這是點擊按鈕的事件處理程序
這是增加的排序對比函數