用陣列產生10個數,為什麼下標越界

2025-02-22 05:10:22 字數 1894 閱讀 1231

1樓:

option base 1

dim a() as integer

private sub command1_click()dim n as integer

n = 10

redim a(n) as integerprint "產生10個隨機數(100-999):"

for i = 1 to 10

randomize

a(i) =int(rnd * 900 + 100)nextprint tab(5 * i); a(i - 1);

end sub

首先option base 1,定義陣列預設下界,command1_click中宣告瞭n但沒給n賦值,n的值為預設的0,所以a(n)會出錯,所以加一句n=10即可。

另外for i = 1 to 10,迴圈結束後i=11,所以沒有a(11)這個變數,所以print tab(5 * i); a(i); 就會出錯,把a(i)改成a(i-1)即可。

2樓:網友

對vb不是很懂,會不會是初值定義問題,你試下i = 0 to 9

為什麼陣列的下標越界了?

3樓:胡楊小豹子

記得迴圈的時候,下標是從0開始到n-1,列印出遍歷陣列的索引十分有幫助,注意一下它的迴圈條件,也可以加斷點。

出現此類問題的原因有多方面。總結一下我所理解的,陣列的長度決定了它所能裝載的資料的量。還有就是陣列計數是從零開始的。

例如:當srring arr=new string[6];如果要往裡輸入名字的話就只能輸入六個,多了就是下標越界。

另外陣列一般都是與for迴圈結合起來用,所以用的的時候要注意一下它的迴圈條件。陣列下標越界異常:,這是乙個非常常見的異常,從名字上看是陣列下標越界錯誤,解決方法就是檢視為什麼下標越界。

這種錯誤就是字串索引越界。

當處理陣列越界時,列印出遍歷陣列的索引十分有幫助,這樣我們就能夠跟蹤**找到為什麼索引達到了乙個非法的值。

所謂的陣列越界,簡單地講就是指陣列下標變數的取值超過了初始定義時的大小,導致對陣列元素的訪問出現在陣列的範圍之外,這類錯誤也是 c 語言程式中最常見的錯誤之一。

陣列下標越界是怎麼回事啊?

4樓:王鵬翔

原因是這樣的:

inta[10];這是乙個整型的陣列a,有10個元素:a[0]-a[9],因為正確的下標應該是從0開始,到9結束,與生活習慣中的1-10不一樣,於是產生乙個a[10]的錯誤,即陣列下標越界。

c和c++語言中陣列下標越界,編譯器是不會檢查出錯誤的,但是實際上後果可能會很嚴重,比如程式崩潰等,所以在日常的程式設計中,程式設計師應當養成良好的程式設計習慣,避免這樣的錯誤發生。

若網頁時提示「陣列下標越界」,除檢查下上述問題外,再檢查下檔案中變數名稱是否一致,很多時候是變數名稱不一致所致。

我的陣列定義了,也在範圍內,為什麼會出現下標越界

5樓:雨茜盈

二維陣列定義的一般形式為:型別說明符 陣列名 [常量表示式][常量表示式]

這兩個常量表示式分別指定了二維陣列的行數和列數,程式編譯時據此向記憶體申請空間。

而引用二維陣列的格式為: 陣列名[行下標][列下標],行下標和列下標都是從0開始排序。這裡的下標和上面的常量表示式意義不同,範圍也不同。

以你給的例子來講:

int b[4][5]是定義乙個名為b的二維陣列,它包含4行5列,共20個元素。如果存放陣列b的首位址為p,則記憶體為陣列分配的空間是p~p+19;陣列b的行下標範圍為0~3,列下標範圍為0~4,位址p+19存放的元素為b[3][4]。如果要引用b[4][5],由於沒有提前向記憶體申請位址,則會隨機指向乙個位址,得到乙個垃圾資料,無法實現我們的目的,我們就說是引用下標越界。

陣列是由三部分組成,有一列陣列,每組由三個陣列成它們依次是1,3,6,2,6,12,3,9,18,請問第20個

所謂陣列,就是相同資料型別的元素按一定順序排列的集合,就是把有限個型別相同的變數用一個名字命名,然後用編號區分他們的變數的集合,這個名字稱為陣列名,編號稱為下標。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。陣列是在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的...

數是數的10倍數是五十數是多少,第一個數是第二個數的10倍第二個數是五十第一個數是多少?

第二數是50,第一個數是第二個數的10倍,所以第一個數是500。50x10 500 第一個數是500。第一個數能整除第二個數是指什麼 第二個數是第一個數的整數倍。第一個數是 除數,第二個數也就是被除數。如 3能整除6,6能被3整除。若整數b除以非零整數a,商為整數,且餘數為零,我們就說b能被a整除 ...

c 從鍵盤輸入10個數,輸出最大數和次最大數

本人親自測試並通過,結果無誤,有問題再聯絡我吧。說明 該程式在同時存在多個最大值時一樣能得出正確結果。比如這樣一組數。 中最大值為,但出現了兩次,這時次大值為,本程式能做到這一點,裡面出現了最小值,別以為它沒用,就是要用它遮蓋掉出現了幾次的最大值,以便找出次大值。include int main i...