VB中下标越界是啥意思,我的这个程序哪里错了?为什么会提示下表越界?

大神们帮我分析下,VB中下标越界是啥意思,我的这个程序哪里错了?为什么会提示下表越界??

Private Sub Command1_Click()
Dim a%(), i!, max%, x, t%
For i = 1 To 10
a(i) = Int(Rnd() * 101 + 100)
Print a(i);
Next i
Print
max = 1
For i = 2 To 10
If a(max) < a(i) Then max = i
Next
Print a(i)
End Sub
最新回答
夏迟归

2024-10-12 10:18:20

Dim a%(), i!, max%, x, t% 说明:这里数组没有定义大小,所以一运行就越界,你可以定义a(10),或者要用数组时才指定大小,用redim a(10)
For i = 1 To 10
a(i) = Int(Rnd() * 101 + 100)
Print a(i);
Next i
Print
max = 1
For i = 2 To 10
If a(max) < a(i) Then max = i
Next
Print a(i) 说明:这里原意是要打出最大值,但是不能如愿,因为FOR循环结束时i会自动加1,此时的i已经不是循环里符合条件的那个i了。
怪味

2024-10-12 09:56:42

    Dim a%(1 To 101)

定义数组的是时候把下标和上标弄进去就可以了

追问
如果不知道有多少个呢?比如从1到n,又该怎么弄?谢谢你。
追答
定义动态数组

可以先定义数组

dim a()
等用的时候用redim重定义数组
ReDim a(小标 to 上标)