P8665 [蓝桥杯 2018 省 A] 航班时间
洛谷里本道题的第一位题解人@lailai0916。大佬真的太牛啦,思路很是简单。
本题一定要注意输入格式
#include<bits/stdc++.h>
using namespace std;
/*
去程时间
=飞行时间 +时差
回程时间 = 飞行时间 − 时差。不难发现,求出来回飞行时间的总和取平均值即可
单位为秒(简单粗暴)
*/
int get()
{
int h1,m1,s1,h2,m2,s2,day=0;
scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);//输入
if(getchar()==' ') scanf("(+%d)",&day);//如果上述输入之后还有空格,则为第二、三种情况;
return day*86400+(h2*3600+m2*60+s2)-(h1*3600+m1*60+s1);//统统化为秒数,简单粗暴
}
int main()
{
int N;
scanf("%d",&N);
while(N--)
{
int sum=0;
sum=(get()+get())/2;//两次来回时间的平均值
printf("%02d:%02d:%02d\n",sum/3600,sum%3600/60,sum%60);注意小时与分钟的% /号的运算,当算小时之时,分钟则直接舍弃,以此类推...
}
return 0;
}