但如果事前不知道陣列大小時,怎麼辦呢?在事前不知道陣列的大小時,可以宣告陣列為動態陣列,在需要指定陣列大小時,再使用redim語句分配陣列的實際元素的個數。
1、動態陣列是可以改變大小的陣列,通過在陣列名稱後附帶空括號來宣告,如:
dim arrsheetname() as string
2、在定義動態陣列之後,必須使用redim來設定動態陣列的上界和下界,為陣列重新分配儲存空間。
3、我們可以使用redim語句反覆地改變陣列的元素個數。
下面我們將通過乙個例項來講解動態陣列的利用:
比如乙個工作表的c列儲存了學生姓名,現在我們需要把把有姓「王」的學生儲存在陣列arr中,預先我們並不知道c列姓王的學生有三十個還是五十個,所以,我們在定義時**可以這樣:
**:sub mynzsz_2()
dim arr() as string
erow = [c65536].end(3).row '最後乙個非空單元格行號
j = 1 '陣列索引號
redim arr(1 to xcount) '重新定義陣列大小,元素共有xcount個
for i = 1 to erow
if left(cells(i, 3).value, 1) = "王" then
arr(j) = cells(i, 3).value '給陣列元素賦值
j = j + 1 '索引號加1
end if
next i
[d1:d65536].clear '清除原有資料
end sub
**截圖:
**的解讀:
1 dim arr() as string 定義了乙個動態陣列。
redim arr(1 to xcount) '重新定義陣列大小,元素共有xcount個
通過求出姓王的學生的個數從而知道陣列的上下界
執行結果:
今日內容回向;
1 什麼是動態陣列?
2 動態陣列和靜態陣列有什麼區別?
將逗號分隔的字串(陣列)取出存到陣列中
include include include include using namespace std 將包含有逗號的字串分隔出來 將所有的逗號或者其他標點符號替換成空格,然後利用istringstream將字串或者數值存下來。int main istringstream m str m接收字串,名...
7 1 將陣列中的數逆序存放
7 1 將陣列中的數逆序存放 15point s 本題要求編寫程式,將給定的n個整數存入陣列中,將陣列中的這n個數逆序存放,再按順序輸出陣列中的元素。輸入在第一行中給出乙個正整數n 1 n 10 第二行輸入n個整數,用空格分開。在一行中輸出這n個整數的處理結果,相鄰數字中間用乙個空格分開,行末不得有...
7 1將陣列中的數逆序存放
應同學請求,將大一曾經做過的一些作業題目再發出來,因時間有限就不再一一做注釋了,在這裡只放置題目和 寒假的時候會再對每個題目進行詳細的注釋,並更新一些新的題目 7 1 將陣列中的數逆序存放 20分 本題要求編寫程式,將給定的n個整數存入陣列中,將陣列中的這n個數逆序存放,再按順序輸出陣列中的元素。輸...