Leia a hora inicial, minuto inicial, hora final e minuto final de um jogo. A seguir calcule a duração do jogo.
Obs: O jogo tem duração mínima de um (1) minuto e duração máxima de 24 horas.
Entrada
Quatro números inteiros representando a hora de início e fim do jogo.
Saída
Mostre a seguinte mensagem: “O JOGO DUROU XXX HORA(S) E YYY MINUTO(S)” .
Eaii gente, alguém consegue me ajudar com esta questão? No meu ver está tudo certo, está compilando e testei as seguintes possibilidades:
td igual 0 0 0 0 OK
hora inicial maior 1 0 0 0 OK
hora inicial e minuto inicial maior 1 1 0 0 OK
hora inicial maior e minuto inicial menor 1 0 0 1 OK
hora inicial menor 0 0 1 0 OK
hora inicial e minuto inical menor 0 0 1 1
minuto inicial menor 0 0 0 1 OK
minuto inicial maior n faz sentido
Segue abaixo o meu código
#include <iostream>
using namespace std;
int main() {
int first_hour, first_minute, last_hour, last_minute, hours, minutes;
cin >> first_hour >> first_minute >> last_hour >> last_minute;
if(last_hour > first_hour && last_minute > first_minute)
{
hours = last_hour - first_hour;
}
else if(last_hour > first_hour && last_minute < first_minute)
{
hours = last_hour - 1 - first_hour;
}
else if(last_hour > first_hour && last_minute == first_minute)
{
hours = last_hour - first_hour;
}
else
{
hours = last_hour + 24 - first_hour;
}
if(last_minute > first_minute)
{
minutes = last_minute - first_minute;
}
else if(last_minute < first_minute)
{
minutes = last_minute + 60 - first_minute;
}
else
{
minutes = 0;
}
if(hours == 24 && minutes > 0)
{
hours = 0;
}
cout << "O JOGO DUROU " << hours << " HORA(S) E " << minutes << " MINUTO(S)" << endl;
return 0;
}