题目描述
668 游戏时间2
读取四个整数A,B,C,D,用来表示游戏的开始时间和结束时间。
其中A和B为开始时刻的小时和分钟数,C和D为结束时刻的小时和分钟数。
请你计算游戏的持续时间。
比赛最短持续1分钟,最长持续24小时。
输入格式
共一行,包含四个整数A,B,C,D。
输出格式
输出格式为“O JOGO DUROU X HORA(S) E Y MINUTO(S)”,表示游戏共持续了X小时Y分钟。
数据范围
0≤A,C≤23,
0≤B,D≤59
样例
输入样例1:
7 8 9 10
输出样例1:
O JOGO DUROU 2 HORA(S) E 2 MINUTO(S)
易错点
当a==c时没考虑清楚究竟有几种情况,可以先在纸上模拟写出各种样例去debug
(本人昨晚上写题时没怎么想清楚就写了,今天发现写的虽然ac了但仍不够完善)
第一次写题解 欢迎大家给我提些建议qwq
C++ 代码
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
if(a>c)
{
if(b>d)
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)\n",24-a+c-1,60-b+d);
else
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)\n",24-a+c,d-b);
}
else
{if(a<c)
{
if(b>d)
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)\n",c-a-1,60-b+d);
else
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)\n",c-a,d-b);
}
else
{
if(b<d)
printf("O JOGO DUROU 0 HORA(S) E %d MINUTO(S)\n",d-b);
else
{if(b==d)
printf("O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)\n");
else
printf("O JOGO DUROU 23 HORA(S) E %d MINUTO(S)\n",60-b+d);
}}}
return 0;
}