当前位置:   article > 正文

[蓝桥杯 2018 省 A] 航班时间

[蓝桥杯 2018 省 A] 航班时间

题目链接:航班时间

显然:去程时间=飞行时间+时差,回程时间=飞行时间-时差

方程组可知:飞行时间=(去程时间+回程时间)/2

本道题目还有一个难点在于如何读入和输出:可以采用scanf()解决。

首先用scanf输入前面两个时间:
 

scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);

然后用getchar()判断接下来还有没有数据,如果是“  ”说明还有:

if(getchar()==' ')scanf("(+%d)",&k);

同时输出也不用麻烦自己写函数:

printf("%02d:%02d:%02d\n",ans/3600,ans%3600/60,ans%60);

输入输出解决了那我们可以计算了,首先将输入的数据全部转化成秒来计算,最后只需改变输出即可

代码附上:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n;
  4. int get(){
  5. int h1,m1,s1,h2,m2,s2,k=0;
  6. scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
  7. if(getchar()==' ')scanf("(+%d)",&k);
  8. return (k*24*3600+h2*3600+m2*60+s2)-(h1*3600+m1*60+s1);
  9. }
  10. int main(){
  11. scanf("%d",&n);
  12. while(n--){
  13. int ans=(get()+get())/2;
  14. printf("%02d:%02d:%02d\n",ans/3600,ans%3600/60,ans%60);
  15. }
  16. return 0;
  17. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/476234
推荐阅读
  

闽ICP备14008679号