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

 

posted @ 2024-01-26 16:10  Gold_stein  阅读(14)  评论(0编辑  收藏  举报