P8665 [蓝桥杯 2018 省 A] 航班时间
这种题目要注意:
1.输入
因为所有的格式都很明确,所以可以用scanf写一个输入格式,同时注意空格和回车
2.怎么简化计算
可以把所有时间都转换成秒进行计算,最后再转换回标准格式,这样可以避免考虑进位,借位,以及浮点数精度问题
#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 T; scanf("%d",&T); while(T--) { int ans=(get()+get())/2; printf("%02d:%02d:%02d\n",ans/3600,ans%3600/60,ans%60); } return 0; }