Mô tả bài toán
Viết chương trình C nhập giờ theo định dạng 24 giờ (0-23) và chuyển đổi sang định dạng 12 giờ (AM/PM).
Thuật toán
- Nhập giờ và phút theo định dạng 24h (ví dụ: 22:37)
- Kiểm tra điều kiện:
- Nếu giờ = 0 → 12:MM AM (nửa đêm)
- Nếu giờ < 12 → Giờ:MM AM (sáng)
- Nếu giờ = 12 → 12:MM PM (trưa)
- Nếu giờ > 12 → (Giờ-12):MM PM (chiều/tối)
- In kết quả theo định dạng 12h
Chương trình C
#include <stdio.h>
int main() {
int gio, phut;
printf("Nhap thoi gian (dinh dang 24h - HH:MM): ");
scanf("%d:%d", &gio, &phut);
printf("Dinh dang 12h: ");
if (gio == 0) {
// 00:MM -> 12:MM AM
printf("12:%02d AM\n", phut);
} else if (gio < 12) {
// 01-11:MM -> Giờ:MM AM
printf("%d:%02d AM\n", gio, phut);
} else if (gio == 12) {
// 12:MM -> 12:MM PM
printf("%d:%02d PM\n", gio, phut);
} else {
// 13-23:MM -> (Giờ-12):MM PM
printf("%d:%02d PM\n", gio % 12, phut);
}
return 0;
}
Kết quả chạy chương trình
Nhap thoi gian (dinh dang 24h - HH:MM): 22:37
Dinh dang 12h: 10:37 PM
Giải thích chi tiết
| Giờ 24h | Giờ 12h | Giải thích |
|---|---|---|
| 00:00 | 12:00 AM | Nửa đêm |
| 01:00 - 11:59 | 1:00 - 11:59 AM | Buổi sáng |
| 12:00 | 12:00 PM | Trưa |
| 13:00 - 23:59 | 1:00 - 11:59 PM | Buổi chiều/tối (trừ 12) |
Lưu ý: Định dạng %02d đảm bảo phút luôn hiển thị 2 chữ số (ví dụ: 05 thay vì 5).