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 "現在數列為:"
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...