Mảng đa chiều trong C

0 phút đọ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 đa 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 1 Col 2 Col 3 Col 4
Row 1 num[0][0] num[0][1] num[0][2] num[0][3]
Row 2 num[1][0] num[1][1] num[1][2] num[1][3]
Row 3 num[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ình luận

Chưa có bình luận nào

Chưa có bình luận nào

Avatar TechMely Team
Được viết bởi

TechMely Team

Bạn cần sức mạnh, nghị lực nên cuộc sống đã đặt ra những khó khăn nghịch cảnh để bạn vượt qua và trở nên mạnh mẽ hơn.
Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely