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;
}