解题思路:
第一行 :去的起降时间
来回的飞行时间相同 时差相同 设时差为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 人评分
字符串比较 (C语言代码)答案错误????浏览:641 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1047 |
兰顿蚂蚁 (C++代码)浏览:1163 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:683 |
格式化数据输出 (C语言代码)浏览:882 |
计算质因子 (C语言代码)浏览:778 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:661 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:581 |
纪念品分组 (C++代码)浏览:878 |
ACM俱乐部密码浏览:948 |