На языке С++! Помогите, пожалуйста.
Студент начал решать задачи данного урока программирования, когда
электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2
часов и min2 минут. Составьте программу, позволяющую определить, сколько
времени студент решал эти задачи. (Будем считать, что задачи решались не
дольше суток).
Answers & Comments
Ответ:
Если не заморачиваться с проверками:
1)
#include <iostream>
using namespace std;
int main()
{
unsigned short int h1,h2,m1,m2;
cout << "Enter start time: ";
cin >> h1 >> m1;
cout << "Enter end time: ";
cin >> h2 >> m2;
unsigned short int SpendedTime = (h2 * 60 + m2) - (h1 * 60 + m1);
unsigned short int SpendedHours = SpendedTime / 60;
unsigned short int SpendedMinutes = SpendedTime - SpendedHours * 60;
cout << "Spended time: ";
if(SpendedHours != 0){
cout << SpendedHours;
if(SpendedHours != 1){
cout << " hours";
}else{
cout << " hour";
}
cout << " and ";
}
cout << SpendedMinutes;
if(SpendedMinutes != 1){
cout << " minutes";
}else{
cout << " minute";
}
return 0;
}
Если заморачиваться:
2)
#include <iostream>
using namespace std;
int main()
{
unsigned short int h1,h2,m1,m2;
bool Passed = false;
while(Passed != true){
cout << "Enter start time: ";
cin >> h1 >> m1;
cout << "Enter end time: ";
cin >> h2 >> m2;
if(h2 >= h1){
if(h2 > h1){
Passed = true;
break;
}else{
if(m2 >= m1){
Passed = true;
break;
}
}
}
cout << "Error: entered wrong time interval \n";
}
unsigned short int SpendedTime = (h2 * 60 + m2) - (h1 * 60 + m1);
unsigned short int SpendedHours = SpendedTime / 60;
unsigned short int SpendedMinutes = SpendedTime - SpendedHours * 60;
cout << "Spended time: ";
if(SpendedHours != 0){
cout << SpendedHours;
if(SpendedHours != 1){
cout << " hours";
}else{
cout << " hour";
}
cout << " and ";
}
cout << SpendedMinutes;
if(SpendedMinutes != 1){
cout << " minutes";
}else{
cout << " minute";
}
return 0;
}
Объяснение: