Mảng đa chiều
Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 56 trên 63.
Mảng đa chiều là một mảng gồm các mảng. Trong C, bạn có thể tạo mảng 2D (mảng đa chiều phổ biến nhất), về cơ bản là một bảng có hàng và cột.
Khai báo một mảng 2D:
int matrix[3][4];Lệnh này tạo một mảng 2D gồm 3 hàng và 4 cột.
Bạn có thể khởi tạo mảng 2D khi khai báo:
int matrix[3][4] = {
{1, 2, 3, 4}, // Hàng đầu tiên
{5, 6, 7, 8}, // Hàng thứ hai
{9, 10, 11, 12} // Hàng thứ ba
};Để truy cập các phần tử trong mảng 2D, hãy dùng hai chỉ số:
int value = matrix[1][2]; // Truy cập hàng 1, cột 2 (giá trị sẽ là 7)Để thay đổi một phần tử trong mảng 2D:
matrix[0][3] = 100; // Đổi phần tử (element) ở hàng 0, cột 3 thành 100Bạn cũng có thể dùng các vòng lặp lồng nhau để truy cập tất cả phần tử trong mảng 2D:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n"); // Xuống dòng sau mỗi hàng
}Thử thách
DễTạo một hàm có tên printDiagonal nhận vào một mảng vuông 2D (số hàng bằng số cột) và in ra các phần tử trên đường chéo chính (từ góc trên bên trái đến góc dưới bên phải).
Hàm cần:
- Nhận một mảng số nguyên và kích thước của mảng làm tham số.
- In ra từng phần tử trên đường chéo chính (chỉ số hàng bằng chỉ số cột).
- Ngăn cách mỗi phần tử bằng một dấu cách.
Ví dụ, với mảng:
1 2 3 4 5 6 7 8 9
Hàm sẽ in ra: 1 5 9
Tự làm thử
#include <stdio.h>
// Hàm (function) in ra các phần tử trên đường chéo của ma trận vuông
void printDiagonal(int matrix[][100], int size) {
// Viết code của bạn ở đây
}
int main() {
int size;
scanf("%d", &size);
int matrix[100][100];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
scanf("%d", &matrix[i][j]);
}
}
printDiagonal(matrix, size);
return 0;
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
2Biến
Kiểu dữ liệuSố nguyênSố thực - DoubleKý tựGiá trị BooleanHằng sốCơ bản về printfQuy tắc đặt tên biếnChuyển đổi kiểu phần 1Chuyển đổi kiểu phần 2Thử thách ôn tậpTự luyện tập: Trình biên dịch C online