VB如何除去陣列中相同的數,VB 陣列中去掉相同的數

2022-05-24 15:36:29 字數 5719 閱讀 9528

1樓:匿名使用者

具體思路:

實現2次迴圈,乙個陣列迴圈2次,外迴圈陣列,得出乙個值a,然後內迴圈,將a與自身所在的陣列的值對比一次,計算出現次數或者設定為空,如果計算出現次數可以計算次數大於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  //累計器大於陣列長度,退出迴圈

if arr(i) = 3 then

dodim 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  //累計器大於陣列長度,退出迴圈

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

測試結果:驗證方式通過計算刪除元素後的陣列長度確認實現功能,輸入了array(3, 3, 3, 3, 1, 3, 7, 3, 3, 3, 9, 3, 3),長度為13(從1開始算),刪除後長度為3,而且只有3個元素是不重複的。說明功能正常。

2樓:匿名使用者

sub 清除陣列重複數()

dim blnok as boolean

dim inttest(99) as integer '未清除重複前的陣列

dim intnew() as integer '清除重複數後的陣列dim i as integer

dim k as integer

dim a as integer

for i = 0 to 99

inttest(i) = int(rnd * 100) + 1 '為測試陣列賦值

next

for i = 0 to ubound(inttest)blnok = true

for k = 0 to ubound(inttest)if inttest(i) = inttest(k) and i <> k then

blnok = false '有重複數出現,標誌為假exit for

end if

next

if blnok = true then

'標誌為真時 將數值加入新的陣列

redim preserve intnew(a)intnew(a) = inttest(i)debug.print intnew(a)a = a + 1

end if

next

3樓:匿名使用者

dim i,j,k as integer

dim nlength as integerdim a() as integer

dim n as integer

n=100

redim a(n-1) as integer'給陣列賦值0--99。

nlength=n-1

for i=0 to nlength-1

for j=i+1 to nlength

if a(j)=a(i) then

for k=j to nlength-1

a(k)=a(k+1)

next k

nlength=nlength-1

end if

next j

next i

for i=0 to nlength

print a(i)

next i

'nlength為去除相同數後的陣列長度

4樓:匿名使用者

1private sub command1_click()dim s(1 to 10) as integerdim i, j, k, n as integers(1) = 1

s(2) = 44

s(3) = 1

s(4) = 2

s(5) = 3

s(6) = 5

s(7) = 44

s(8) = 66

s(9) = 66

s(10) = 7

n = 10

for i = 1 to n - 1

for j = i + 1 to n

if s(i) = s(j) then

for k = j to n - 1

s(k) = s(k + 1)

next k

n = n - 1

end if

next j

next i

for i = 1 to n

print s(i)

next i

end sub

vb 陣列中去掉相同的數

5樓:匿名使用者

具體思路:

實現2次迴圈,乙個陣列迴圈2次,外迴圈陣列,得出乙個值a,然後內迴圈,將a與自身所在的陣列的值對比一次,計算出現次數或者設定為空,如果計算出現次數可以計算次數大於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  //累計器大於陣列長度,退出迴圈

if arr(i) = 3 then

dodim 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  //累計器大於陣列長度,退出迴圈

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

測試結果:驗證方式通過計算刪除元素後的陣列長度確認實現功能,輸入了array(3, 3, 3, 3, 1, 3, 7, 3, 3, 3, 9, 3, 3),長度為13(從1開始算),刪除後長度為3,而且只有3個元素是不重複的。說明功能正常。

6樓:玫瑰為你盛開

private sub command1_click()

dim cflag() as boolean, c() as integer

rem 在此處得到c的具體元素及其個數,以下為示例

'**********************************

m = 20

redim cflag(1 to m), c(1 to m)

a = lbound(c)

b = ubound(c)

randomize

text1 = ""

text2 = ""

for i = a to b

c(i) = int(10 * rnd)

text1 = text1 & " " & c(i)

next

'***********************************

rem 去同

for i = a to b - 1

if cflag(i) = false then

for j = i + 1 to b

if c(i) = c(j) then cflag(j) = true

next

end if

next

rem 顯示

n = 0

for i = a to b

if cflag(i) = false then

n = n + 1

text2 = text2 & " " & c(i)

end if

next

print n '剩餘個數

end sub

7樓:匿名使用者

懶得找書了

0分,我也懶的寫了,雖然很簡單

vb如何去掉重複的陣列元素?

8樓:ii個人的寂寞

你的意思是不是有乙個陣列,裡面的元素可能有重複的。

比如陣列a。裡面有5個值,其中有3個是重複的?

如果這樣的話,很好辦哦。

新建乙個陣列b,然後遍歷要去除的陣列a,

從a中把每乙個都取出來,和新建的b裡面的去比,如果有相同的,則不放入b,

否則就放入陣列b,直到迴圈結束。

9樓:匿名使用者

陣列元素怎麼會重複呢?不可能的,你看看你是不是說錯了

vb刪除陣列中相同資料,求高手幫忙,先行謝過

10樓:網海1書生

dim a() as string, b() as string, c() as string

dim temp as string, i as longtemp = replace(text1, ",,", ", ")a = split(temp, ", ")for i = 0 to ubound(a)if join(filter(b, a(i))) = "" thenif join(b) = "" then

redim b(0)

else

redim preserve b(ubound(b) + 1)end if

b(ubound(b)) = a(i)

if join(c) = "" then

redim c(0)

else

redim preserve c(ubound(c) + 1)end if

c(ubound(c)) = ubound(filter(a, a(i))) + 1

end if

next

VB怎麼宣告陣列,VB中陣列怎麼定義

如果有規律就可以用for next 來賦值,如果沒有規律,資料又很多的話,就從檔案裡面讀。 dim 陣列名 as int new int vb中陣列怎麼定義 大野瘦子 是這麼定義的 陣列中的第一個元素的下標稱為下界,最後一個元素的下標稱為上界,其餘的元素連續地分佈在上下界之間,且陣列在記憶體中也是用...

vb按鈕陣列如何呼叫,vb中如何讓乙個按鈕呼叫另乙個按鈕中的陣列?VB小菜,請高手指教。

以為打老鼠為例,示例如下 在form load事件中輸入下面的 for i 1 to 15 因為有16個名稱相同的控制項 command1 i visible false 此功能用於在窗體啟動時將所有的控制項隱藏。next i 介面的其它內容也可以在此設定,例如option1,label1等 然後通...

VB如何設計單擊網頁,VB 如何單擊網頁中的按鈕

我的思路是 先手動開啟該網頁 該網頁不能關閉 不能最小化 不能移動。呵呵呵 這方法很笨 但實用。用vb獲取按鈕的座標。用計時器 每隔一定時間點選該座標一次。應該有更先進的方法 我也想學習學習。vb 如何單擊網頁中的按鈕 單擊 click 屬於事件。所謂事件 event 是由vb預先設定好的 能夠被物...