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