VB程式設計小問

2022-10-25 04:21:40 字數 825 閱讀 2855

1樓:

越界的原因是你的i迴圈和c迴圈都是基於b的大小的,而在迴圈中,又改變了b的大小,所以越界

private sub form_click()print

print "原數列為:"

dim a() as integer, b() as integer, c as integer, i as integer, j as integer

redim a(20)

for i = 1 to 20

a(i) = int(rnd * 20)

print a(i);

next i

print

print "現在數列為:"

c = 1

redim b(1)

b(1) = a(1)

for i = 2 to ubound(a)for j = 1 to i - 1

if a(i) = a(j) then exit fornext j

if j = i then

c = c + 1

redim preserve b(c)

b(c) = a(i)

end if

next i

for i = 1 to ubound(b)print b(i);

next i

end sub

2樓:匿名使用者

單步跟蹤一下,監視b的值,應該是b = ubound(a)出現大於20的數,導致了越界。另外:

redim preserve a(b)當b是變數時,這個可能也有問題,可以看看msdn,我不太記得了。

vb程式設計計算VB程式設計計算

第一種 對比計算privatesub mand1 click timer1.enabled truetimer1.interval 1 計算一次用時量endsubprivatesubform load text2.text 0 計算方法初始化text3.text 0 計算開始初始化text4.tex...

vb程式設計題目,VB程式設計題目

private sub mand1 click if len text1 2 thentext1 left text1,2 end if end sub private sub mand2 click text1 end sub private sub form load label1.captio...

VB程式程式設計,什麼是VB程式設計?

private sub command1 click dim t x y z t val text1.text if t 100 or len text1.text 3 then msgbox 輸入的數字不符合要求 vbinformation exit sub end if z t mod 10 y...