解题思路:
第一行 :去的起降时间
来回的飞行时间相同 时差相同 设时差为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 人评分
Hello, world! (C语言代码)浏览:1195 |
C语言程序设计教程(第三版)课后习题5.7 (C++代码)浏览:846 |
九宫重排 (C++代码)浏览:1326 |
矩阵乘法 (C++代码)浏览:1454 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:889 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:543 |
【绝对值排序】 (C++代码)浏览:670 |
c primer plus 第十二章 12.1小节浏览:375 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1514 |
十->二进制转换 (C语言代码)浏览:1291 |