首頁  >  文章  >  後端開發  >  c語言中二維數組怎麼用?

c語言中二維數組怎麼用?

little bottle
little bottle原創
2019-04-29 15:50:2919423瀏覽

c語言二維數組的使用方法:首先打開c語言腳本檔案並定義一個二維數組;然後呼叫一個自訂函數求二維數組每列元素中的最小值的和值;最後透過返回值傳回主函數輸出即可。

c語言中二維數組怎麼用?

C語言的學習中,二維陣列可以算是基礎中比較重要的內容了,這篇文章主要講的是二維數組在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影片教學

#

以上是c語言中二維數組怎麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn