
Private Sub Form_Click()
Dim a%(100), b%(), i%, n%, j%
n = 0
For i = 1 To 100
a(i) = Int(Rnd * 100 + 1)
If a(i) Mod 2 = 0 Then n = n + 1
Next i
ReDim b%(n)
j = 0
For i = 1 To 100
If a(i) Mod 2 = 0 Then b(j) = a(i)
j = j + 1
Next i
b(j)越界
这段禅里加个If判断,判断数组握耐尘下标有没亩凯有越界,如果越界就退出循环即可。
Option Base 1
Private Sub Form_Click()
Dim a%(100), b%(), i%, n%, j%
n = 0
For i = 1 To 100
a(i) = Int(Rnd * 100 + 1)
If a(i) Mod 2 = 0 Then n = n + 1
Next i
ReDim b%(n)
j = 0
For i = 1 To 100
If a(i) Mod 2 = 0 Then b(j) = a(i)
j = j + 1
If j = UBound(b()) Then Exit Sub
Next i
End Sub
Option Base 1
Private Sub Form_Click()
Dim a%(100), b%(), i%, n%, j%
n = 1 ' 此处应为1,键磨要不然b(n)下标上稿卖斗限还不配谈够
For i = 1 To 100
a(i) = Int(Rnd * 100 + 1)
If a(i) Mod 2 = 0 Then n = n + 1
Next i
ReDim b%(n)
j = 1
For i = 1 To 100
If a(i) Mod 2 = 0 Then
List1.AddItem a(99)
b(j) = a(i)
Print b(j);
j = j + 1
End If
Next i
End Sub
For i = 1 To 100
If a(i) Mod 2 = 0 Then
b(j) = a(i)
j = j + 1
End If
Next i
End Sub
Option Base 1
Private Sub Form_Click()
Dim a%(100), b%(), i%, n%, j%
n = 0
For i = 1 To 100
a(i) = Int(Rnd * 100 + 1)
If a(i) Mod 2 = 0 Then n = n + 1
Next i
ReDim b%(n)
j =1 '此处改动
For i = 1 To 100
If a(i) Mod 2 = 0 Then b(j) = a(i): j = j + 1 '此处改动
Next i