Mảng đa chiều trong C

Trong bài học này, chúng ta sẽ học cách làm việc với mảng đa chiều

Mảng đa chiều trong C

Trong lập trình C, chúng ta có thể tạo một mảng mảng. Mảng này được gọi là mảng nhiều chiều.

Ví dụ:

int num[4][3]

Ở đây, num là một mảng hai chiều. Mảng có thể chứa 12 phần tử. ta có thể hình dung rằng mảng như một bảng có 3 hàng và mỗi hàng có 4 cột.

Col 1Col 2Col 3Col 4
Row 1num[0][0]num[0][1]num[0][2]num[0][3]
Row 2num[1][0]num[1][1]num[1][2]num[1][3]
Row 3num[2][0]num[2][1]num[2][2]num[2][3]

Tương tự, bạn có thể khai báo một mảng ba chiều.

Ví dụ:

int num[4][2][3]

Và mảng num này có thể chứa 4 _ 2 _ 3 = 24 phần tử

Khởi tạo một mảng đa chiều trong C

chúng ta có thể khởi tạo mảng đa chiều bằng một trong các cách sau

Ví dụ khởi tạo mảng hai chiều:

int num[3][2] = {{1, 3}, {-5, 4}, {17, 35}};

int num[][2] = {{1, 3}, {-5, 4}, {17, 35}};

ví dụ khởi tạo mảng ba chiều:

int num[2][3][4] = {
    {{1, 2, 3, 4}, {-5, 6, -9, 18}, {43, 21, 22, 23}},
    {{1, 4, -5, 6}, {-6, 8, 9, -11}, {0, 1, 2, 3}}
};

Nhập và xuất phần tử trong mảng

để nhập vào, lưu trữ và hiển thị giá trị các phần tử của mảng hai chiều chúng ta sẽ sử dụng nested loop

Ví dụ nhập vào một matrix có 3 hàng và 4 cột và hiển thị ra matrix đó:

#include <stdio.h>

int main() {

    int row = 3;
    int col = 4;
    int matrix[row][col];

    // nhập vào mảng 2 chiều

    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            printf("Enter matrix[%d][%d]: ", i + 1, j + 1);
            scanf("%d", &matrix[i][j]);
        }
    }

    // hiển thị mảng 2 chiều

    printf("\nDisplay matrix: \n");
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            printf("[%d]", matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Kết quả:

Enter matrix[1][1]: 1
Enter matrix[1][2]: 3
Enter matrix[1][3]: 2
Enter matrix[1][4]: 5
Enter matrix[2][1]: 2
Enter matrix[2][2]: 3
Enter matrix[2][3]: 4
Enter matrix[2][4]: 5
Enter matrix[3][1]: 6
Enter matrix[3][2]: 1
Enter matrix[3][3]: 3
Enter matrix[3][4]: 4

Display matrix:
[1][3][2][5]
[2][3][4][5]
[6][1][3][4]

Tương tự ta có ví dụ về nhập và hiển thị mảng ba chiều:

#include <stdio.h>

int main() {

    int num[2][3][2];

    // nhập vào mảng 3 chiều sử dụng 3 vòng for lồng nhau

    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                printf("Enter num[%d][%d][%d]: ", i, j, k);
                scanf("%d", &num[i][j][k]);
            }
        }
    }

    // hiển thị giá trị mảng ba chiều

    printf("\nDisplaying values:\n");
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                printf("num[%d][%d][%d] = %d\n", i, j, k, num[i][j][k]);
            }
        }
    }

    return 0;
}

kết quả:

Enter num[0][0][0]: -2
Enter num[0][0][1]: 0
Enter num[0][1][0]: 1
Enter num[0][1][1]: 5
Enter num[0][2][0]: 4
Enter num[0][2][1]: -2
Enter num[1][0][0]: 23
Enter num[1][0][1]: 32
Enter num[1][1][0]: -12
Enter num[1][1][1]: 21
Enter num[1][2][0]: 32
Enter num[1][2][1]: -2

Displaying values:
num[0][0][0] = -2
num[0][0][1] = 0
num[0][1][0] = 1
num[0][1][1] = 5
num[0][2][0] = 4
num[0][2][1] = -2
num[1][0][0] = 23
num[1][0][1] = 32
num[1][1][0] = -12
num[1][1][1] = 21
num[1][2][0] = 32
num[1][2][1] = -2
Bài trước
left Bài trước
left Giới thiệu mảng trong C
Bài tiếp theo
Truyền mảng vào hàm trong C right
Bài tiếp theo right
Avatar Techmely Team
VIẾT BỞI

Techmely Team