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