闪光体i


私信TA

用户名:uq_45472242551

访问量:2210

签 名:

等  级
排  名 704
经  验 3928
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

第一行 :去的起降时间

来回的飞行时间相同  时差相同 设时差为n

17:48:19 甲地起飞时间

           17:48:19+n 为乙地的起飞时间

 

21:57:24  甲到乙地的降落时间

         21:57:24-(17:48:19+n)=飞行时间

第二行:回来的起降时间

11:05:18  乙地的起飞时间

           11:05:18-n 为甲地起飞时间

 

15:14:23  乙到甲地的降落时间

     15:14:23-(11:05:18-n)=飞行时间

 

列等式 飞行时间相同,求时差 在求飞行时间

21:57:24-(17:48:19+n)=15:14:23-(11:05:18-n)

求出n 在把n带回去 求飞行时间

 

要把时间转化为秒 求总秒数

H m s: m*60+s+h*3600=总秒数

 

答案在从总秒数 求出的时差转回h,m,s



注意事项:   有借鉴思想

参考代码:

#include<stdio.h>

#include<string.h>

int zs(int h,int m ,int s){

     return h*3600+m*60+s;

}

int pd(){

     char a[100];

     gets(a);

     int l;

     l=strlen(a);

     if(a[l-1]!=')')

      strcat(a,"(+0)");

      int h1,m1,s1,h2,m2,s2,d;

      sscanf(a,"%d:%d:%d %d:%d:%d (+%d)", &h1, &m1, &s1, &h2, &m2, &s2, &d);

      return zs(h2,m2,s2)-zs(h1,m1,s1)+d*24*3600;

}

int main(){

     int n;

     scanf("%d",&n);

     char a[200];

     gets(a);

     while(n--){

           int t=(pd()+pd())/2;

           int h=(t/3600)%24;

           int m=(t/60)%60;

           int s=t%60;

           printf("%02d:%02d:%02d\n", h, m, s);

     }

     return 0;

}


 

0.0分

3 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »