您好,登錄后才能下訂單哦!
小編給大家分享一下c語言中二維數(shù)組如何使用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
二維數(shù)組定義的一般形式
類型說明符 數(shù)組名[ 常量表達式][ 常量表達式];
例如:
int arr[3][4]
表示定義了一個 3×4,即 3 行 4 列總共有 12 個元素的數(shù)組 a。這 12 個元素的名字依次是:a[0][0]、a[0][1]、a[0][2]、a[0][3];a[1][0]、a[1][1]、a[1][2]、a[1][3];a[2][0]、a[2][1]、a[2][2]、a[2][3]。
與一維數(shù)組一樣,行序號和列序號的下標(biāo)都是從 0 開始的。元素 a[i][j] 表示第 i+1 行、第 j+1 列的元素。數(shù)組 int a[m][n] 最大范圍處的元素是 a[m–1][n–1]。所以在引用數(shù)組元素時應(yīng)該注意,下標(biāo)值應(yīng)在定義的數(shù)組大小的范圍內(nèi)。
此外,與一維數(shù)組一樣,定義數(shù)組時用到的“數(shù)組名[常量表達式][常量表達式]”和引用數(shù)組元素時用到的“數(shù)組名[下標(biāo)][下標(biāo)]”是有區(qū)別的。前者是定義一個數(shù)組,以及該數(shù)組的維數(shù)和各維的大小。而后者僅僅是元素的下標(biāo),像坐標(biāo)一樣,對應(yīng)一個具體的元素。
二維數(shù)組始化
1) 分行給二維數(shù)組賦初值,如:
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
這種賦初值的方法比較直觀,把每行看作一個元素,按行賦初值。
2) 也可以將所有數(shù)據(jù)寫在一個花括號內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值。比如:
int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
3) 也可以只對部分元素賦初值。比如:
int a[3][4] = {{1, 2}, {5}, {9}};
4) 如果在定義數(shù)組時就對全部元素賦初值,即完全初始化,則第一維的長度可以不指定,但第二維的長度不能省。比如:
int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
等價于:
int a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
系統(tǒng)會根據(jù)數(shù)據(jù)總數(shù)和第二維的長度算出第一維的長度。但這種省略的寫法幾乎不用,因為可讀性差。
5) 二維數(shù)組“清零”,里面每一個元素都是零,如下:
int a[3][4]={0};
二維數(shù)組如何輸入輸出
在一維數(shù)組中是用一個 for 循環(huán)進行輸入輸出,而二維數(shù)組元素的輸入輸出要使用兩個 for 循環(huán)嵌套。
下面有一個小例題,大家可以用來練練手:
//輸入一個3行4列的二維數(shù)組的元素值 //調(diào)用一個自定義函數(shù)求二維數(shù)組每列元素中的最小值的和值 //和值通過返回值傳回主函數(shù)輸出 #include "stdio.h" int sum(int arr[3][4])//定義一個二維數(shù)組 { int sum = 0; for (int i = 0; i < 4; i++) { int min = arr[0][i]; for (int j = 1; j < 3; j++)//找出每列最小元素 if (min > arr[j][i]) min = arr[j][i]; sum += min;//每列最小元素相加 } return sum; } int main() { int arr[3][4]; for (int i = 0; i < 3; i++) //行 for (int j = 0; j < 4; j++)//列 scanf("%d", &arr[i][j]); //輸入數(shù)組元素 int r = sum(arr); printf("%d\n", r);//輸出每列最小元素之和 return 0; }
實現(xiàn)結(jié)果:
1 2 3 4 0 2 5 9 0 1 3 -1 3
以上是c語言中二維數(shù)組如何使用的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。