Bài toán: Bạn Bình bắt đầu làm bài tập lập trình mà thầy giáo vừa ra và lúc h giờ, m phút
và s giây. Thời gian làm tất cả bài tập của Bình là x giây (0 < x < 105). Bình muốn biết đồng hồ sẽ chỉ mấy giờ khi mình kết thúc việc làm bài tập. Biết rằng kim giờ của đồng hồ chỉ có giá trị từ 1 đến 12, kim phút có giá trị từ 0 đến 59, kim giây có giá trị từ 0 đến 59. Hãy trả lời giúp Bình !
Ví dụ:
- Input
3 5 45 120
- Output
3 7 45
Giải thích: Thời gian ban đầu là 3 giờ 5 phút 45 giây, thời gian làm bài tập của Bình là 120 giây. Vậy lúc 3 giờ 7 phút 45 giây bạn Bình sẽ hoàn thành xong bài tập.
Để bài toán đơn giản hơn thì ta sẽ xem bài toán này là bài toán chuyển đổi thời gian.
Hướng dẫn viết chương trình chuyển đổi thời gian
Viết hàm chuyển đổi thời gian
Vì hàm này có thể làm thay đổi giá trị giờ phút giây nên ta cần truyền tham chiếu vào hàm. Hoặc cũng có thể dùng con trỏ nhưng tham chiếu sẽ đơn giản hơn.
Kiểu trả về của hàm fun( ta sẽ viết hàm này để chuyển đổi) sẽ là void, tức không trả về giá trị nào cả.
Trong hàm fun chúng ta sẽ kiểm tra nếu số giấy lớn hơn bằng 60 thì ta sẽ giảm số giây đi 60 đơn vị, đồng thời tăng số phút lên một đơn vị. Quá trình cứ lặp lại cho đến khi số giây nhỏ hơn 60.
Ví dụ: Số giây là 120
- Số giây 60 số phút +1
- Số giấy 0 số phút +2
Ta sẽ dùng một vòng lặp while để thực hiện công việc trên.
Các giá trị phút và giờ cũng tương tự như trên.
Code chương trình chuyển đổi thời gian
#include<iostream> using namespace std; void fun(int &gio, int &phut, int &giay, int x) { giay += x; while (giay >= 60) { ++phut; giay -= 60; } while (phut >= 60) { ++gio; phut -= 60; } while (gio >= 12) { gio -= 12; } } int main() { int gio, phut, giay, x; cout << "Nhap gio: "; cin >> gio; cout << "Nhap phut: "; cin >> phut; cout << "Nhap giay: "; cin >> giay; cout << "Nhap thoi gian: "; cin >> x; //Gọi hàm chuyển đổi fun(gio, phut, giay, x); cout << gio << " : " << phut << " : "<<giay << endl; return 0; }
Sau khi chạy chương trình trên ta có kết quả sau
Nhap gio: 3 Nhap phut: 5 Nhap giay: 45 Nhap thoi gian: 120 3 : 7 : 45
Bài viết mình đến đây cũng kết thúc. Cám ơn các bạn đã theo dõi !
Để lại một bình luận