引入二維數組
現在有三名同學,他們分別四科成績,假設現在存儲他們的成績,那麼該用什麼來存儲,能夠讓成績和他們每個人都對應呢? 如果建立一個數組score,它是二維的,第一維表示學生,第二維表示成績,
例如score[1][2] 代表第一個學生的第二科成績。
我們成稱score就是二維數組,二維數組常稱為矩陣。把二維數組寫成行和列的排列形式,有助於我們形象的理解二維數組的邏輯關係。
二維數組的初始化
1.分行給二維數組賦初值
例如:
<code>int a[3][4]={{1,2,3,4},{1,2,3,1},{4,5,6,8}};/<code>
這種賦值的方法較為直觀,把第一個花括號的數據給第一行的元素,第二個花括號的數據賦值給第二行元素......
2.可以將所有數據寫在一個花括號裡面,按數組元素內存中的排列順序對各元素賦初值。
例如:
int a[3[4]={1,2,3,4,5,6,7,8,9,5,6,4};
3.可以對部分元素賦初值
例如:
<code>int a[3][4]={{1},{0},{2}};/<code>
表示第一行第一個元素為1,其他為0,第二行所有元素為0,第三行第一個元素為2,其他為0;
4.如果對全部元素都賦初值(即提供全部初始數據),則定義數組時對第一維的長度可以不指定, <strong>但是第二行的長度不能忽略。例如:
<code>int a[3][4]={1,2,3,4,5,6,7,8,9,4,5};/<code>
與下面定義相同:
<code>int a[][4]={1,2,3,4,5,6,7,8,9,4,5};/<code>
系統會根據總個數和第二維的長度計算出第一維的長度。
<strong>在定義時也可以只對部分元素賦初值而省略第一維的長度,但是要分賦初值。
<code>int a [][4]={{1},{},{2}}; /<code>
這種賦初值和第三中情況類似。
5.輸入賦初值
int a[3][2];/先定義
for(i=0;i<=3;i++) //用雙重for循環賦值,i,j表示二維數組下標
for(j=0;j<=2;j++)
scanf("%d",&a[i][j])
如有錯誤,歡迎指出!
閱讀更多 喵喵視角 的文章