本题复杂的讨论就在:
1、比赛是否持续到第二天。
2、计算时间差时候分钟值的比较。
所以可以采用不管三七二十一,直接假设比赛就是持续到第二天,然后将时间转化为分钟单位temp=(c+24-a)60+d-b。然后分temp情况讨论:
1、正好24小时
2、小于2460直接转化为小时分钟输出
3、大于2460,则减去2460再转化为小时分钟输出
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a, b, c, d;
cin >> a >> b >> c >> d;
int temp=(c+24-a)*60+d-b;
if(temp==24*60)
printf("O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)");
else if(temp<24*60)
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",temp/60,temp%60);
else
printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",(temp-24*60)/60,(temp-24*60)%60);
return 0;
}