Trong quá trình học ngôn ngữ lập trình C, cấu trúc vòng lặp lồng nhau đóng vai trò quan trọng. Bài viết này sẽ hướng dẫn bạn cách tạo một chương trình in ma trận số bằng cách sử dụng vòng lặp lồng nhau.
Mã Chi Tiết
Mục tiêu của chúng ta là in ra một ma trận 5x5, mỗi dòng hiển thị các số từ 1 đến 5 liên tiếp.
#include <stdio.h>
int main() {
int dong, cot; // Khai báo hai biến cho dòng và cột
int chieuDong = 5; // Tổng số dòng
int chieuCot = 5; // Tổng số cột mỗi dòng
for (dong = 1; dong <= chieuDong; dong++) { // Vòng lặp ngoài điều khiển dòng
for (cot = 1; cot <= chieuCot; cot++) { // Vòng lặp trong điều khiển cột
printf("%d", cot); // In ra số hiện tại của cột
}
printf("\n"); // Sau mỗi dòng, xuống hàng mới
}
return 0;
}
Kết Quả Chạy Chương Trình
Sau khi chạy chương trình, kết quả xuất hiện trên màn hình như sau:12345 12345 12345 12345 12345
Phân Tích Logic Mã
- Vòng lặp ngoài: Điều khiển từng dòng từ `dong = 1` đến `dong = 5`, thực hiện tổng cộng 5 lần.
- Vòng lặp trong: Điều khiển từng cột từ `cot = 1` đến `cot = 5`, mỗi dòng in ra 5 số.
- Xuống dòng: Mỗi lần hoàn thành vòng lặp trong, thêm một ký tự xuống dòng để bắt đầu dòng mới.
Phân Tích Độ Phức Tạp Thời Gian
- Vòng lặp ngoài thực hiện `chieuDong` lần. - Mỗi lần vòng lặp ngoài, vòng lặp trong thực hiện `chieuCot` lần. - Mỗi lần vòng lặp trong gọi hàm `printf`. Tổng số thao tác cơ bản: chieuDong × chieuCot = 5 × 5 = 25 - **Độ phức tạp thời gian**: O(n²) Nếu giả định số dòng và cột giống nhau là n, thì độ phức tạp là: O(n²).Phân Tích Độ Phức Tạp Không Gian
- Chương trình chỉ sử dụng các biến hằng cấp: `dong`, `cot`, `chieuDong`, `chieuCot`. - Không cần dữ liệu bổ sung để lưu trữ kết quả. - **Độ phức tạp không gian**: O(1)| Dự Án | Mô Tả |
|---|---|
| Kết Quả Đầu Ra | Ma trận 5x5 với mỗi dòng là `12345` |
| Độ Phức Tạp Thời Gian | O(n²) |
| Độ Phức Tạp Không Gian | O(1) |
| Nội Dung Chính | Vòng lặp for lồng nhau |