Bài viết này mình sẽ hướng dẫn các bạn cách nhập xuất mảng hai chiều trong ngôn ngữ C.

Mảng hai chiều là gì

Mảng hai chiều có thể được định nghĩa như một mảng của các mảng. Mảng hai chiều được tổ chức như một ma trận đại diện bởi các cột và hàng.

Cú pháp:

DataType ArrayName[rows][columns];

Ví dụ:

int matrices[4][3]

Ở đây, mảng hai chiều matrices có kiểu int, 4 hàng, 3 cột.

Để truy cập một phần tử ở vị trí nào thì ta có thể chỉ định ArrayName[i][j], trong đó i là chỉ số của hàng (bắt đầu từ 0) và j là chỉ số của cột (bắt đầu từ 0).

Cùng xem ví dụ dưới đây:

#include <stdio.h>

int main() {
    int matrices[3][2] = {
            {1,2},
            {3,4},
            {5,6}
    };

    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 2; ++j) {
            printf("%d ", matrices[i][j]);
        }

        printf("\n");
    }
    return 0;
}

Kết quả:

1 2
3 4
5 6

Lưu ý: Một số bạn thường bị nhầm ở chỗ chỉ số hàng i và chỉ số cột j.

Bài toán nhập xuất mảng hai chiều

Bài toán: Hãy nhập một ma trận gồm m hàng và n cột, sau đó xuất chúng ra màn hình.

Code:

#include <stdio.h>

int main() {
    int rows;
    int columns;

    printf("Rows: ");
    scanf("%d", &rows);
    printf("Column: ");
    scanf("%d", &columns);

    int matrices[rows][columns]; // Khai bao mang hai chieu

    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < columns; ++j) {
            printf("A[%d][%d]: ", i, j);
            scanf("%d", &matrices[i][j]);
        }
    }

    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < columns; ++j) {
            printf("%d ", matrices[i][j]);
        }

        printf("\n");
    }
    return 0;
}

Kết quả:

Rows: 2
Column: 3
A[0][0]: 1
A[0][1]: 2
A[0][2]: 3
A[1][0]: 4
A[1][1]: 5
A[1][2]: 6
1 2 3
4 5 6

Kết luận

Như vậy mình đã hướng dẫn các bạn cách nhập xuất mảng hai chiều trong ngôn ngữ C.

Cám ơn các bạn đã theo dõi, chúc các bạn một ngày mới tốt lành!