Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Mảng hai chiều (two-dimensional array) trong ngôn ngữ C là gì?


Mảng là nhóm các mục liên quan lưu trữ với tên chung.

Cú pháp

datatype array_name[size];

Các loại mảng

  • Mảng một chiều
  • Mảng hai chiều
  • Mảng đa chiều

Khởi tạo

  • Compile time initialization
  • Runtime initialization

Mảng hai chiều

Dùng khi lưu bảng giá trị hoặc ứng dụng ma trận.

Cú pháp

datatype array_name[rowsize][columnsize];

Ví dụ: int a[5][5];

a[0][0]
10
a[0][1]
20
a[0][2]
30
a[1][0]
40
a[1][1]
50
a[1][2]
60
a[2][0] a[2][1] a[2][2]

Ví dụ: Khởi tạo compile time

#include <stdio.h> 
main() { 
    int a[3][3] = {10,20,30,40,50,60,70,80,90}; 
    int i, j; 
    printf("Phần tử mảng: "); 
    for (i = 0; i < 3; i++) { 
        for (j = 0; j < 3; j++) { 
            printf("%d\t", a[i][j]); 
        } 
        printf("\n"); 
    } 
}

Kết quả

Phần tử mảng: 
10 20 30 
40 50 60 
70 80 90

Ví dụ: Khởi tạo runtime

#include <stdio.h> 
main() { 
    int a[3][3], i, j; 
    printf("Nhập phần tử mảng: "); 
    for (i = 0; i < 3; i++) { 
        for (j = 0; j < 3; j++) { 
            scanf("%d", &a[i][j]); 
        } 
    } 
    printf("Phần tử mảng: "); 
    for (i = 0; i < 3; i++) { 
        for (j = 0; j < 3; j++) { 
            printf("%d\t", a[i][j]); 
        } 
        printf("\n"); 
    } 
}

Kết quả

Nhập phần tử: 1 2 3 4 5 6 7 8 9 
Phần tử mảng: 
1 2 3 
4 5 6 
7 8 9

Ví dụ: Tính tổng và tích 2 mảng

#include <stdio.h> 
void main() { 
    int A[2][3], B[2][3], i, j, sum[2][3], product[2][3]; 
    printf("Nhập mảng A:\n"); 
    for (i = 0; i < 2; i++) { 
        for (j = 0; j < 3; j++) { 
            printf("A[%d][%d]: ", i, j); 
            scanf("%d", &A[i][j]); 
        } 
        printf("\n"); 
    } 
    for (i = 0; i < 2; i++) { 
        for (j = 0; j < 3; j++) { 
            printf("B[%d][%d]: ", i, j); 
            scanf("%d", &B[i][j]); 
        } 
        printf("\n"); 
    } 
    printf("Mảng tổng:\n"); 
    for (i = 0; i < 2; i++) { 
        for (j = 0; j < 3; j++) { 
            sum[i][j] = A[i][j] + B[i][j]; 
            printf("%d\t", sum[i][j]); 
        } 
        printf("\n"); 
    } 
    printf("Mảng tích:\n"); 
    for (i = 0; i < 2; i++) { 
        for (j = 0; j < 3; j++) { 
            product[i][j] = A[i][j] * B[i][j]; 
            printf("%d\t", product[i][j]); 
        } 
        printf("\n"); 
    } 
}

Kết quả

Nhập mảng A: 
A[0][0]: 2 A[0][1]: 3 A[0][2]: 1 
A[1][0]: 2 A[1][1]: 4 A[1][2]: 5 
Nhập mảng B: 
B[0][0]: 1 B[0][1]: 2 B[0][2]: 3 
B[1][0]: 5 B[1][1]: 6 B[1][2]: 7 
Mảng tổng: 
3 5 4 
7 10 12 
Mảng tích: 
2 6 3 
10 24 35