P8665 [蓝桥杯 2018 省 A] 航班时间:格式问题

题目链接:

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

哎,这道题做了很长时间还是做错了🥀

代码

#include<iostream>
#include<algorithm>
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;
}

注意点

为了方便计算起飞和降落之间的时间差,我们将单位都换算成秒,最终计算出的是相差的秒数,然后再经过换算得到对应的时间。

这样避免了直接将小时、分钟、秒直接相减得到负数的情况

通过判断下一个字符是否是空格来判断是否隔天

scanf("%d:%d:%d %d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
if(getchar()==' ')scanf("(+%d)",&day);

因为我们发现如果是隔天,紧跟正常格式输入完之后一定会有一个空格。因此我们将其作为判断标准。

飞行时间的求法:

我们将单位换算成秒之后,分别用来和去的降落时间减去起飞时间 得到的结果进行相加再/2得到的就是飞行时间。

因为题目已经假设了往返飞行时间相同,所以两次相减得到的结果应该是相同的,但是由于输入格式要求输入来回两次的起降时间,因此我们get函数不得已执行了两次,所以最后需要两数相加初二来得到答案。

当时间为一位数时,要补齐前导零。

这个可以直接利用printf输出格式来实现。

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

02 表示输出的整数至少占两位,不足两位时用零填充

这次做过了一定要记住呀,很省事。

再补充一些

想再说一下scanf 

scanf函数的返回值是成功读取并赋值的项数。如果读取失败,或者在读取第一个项之前就遇到了文件结束符,scanf函数会返回EOF  (EOF并不代表0)

输入的数据与指定的格式不匹配时,scanf会停止读取,并返回已经成功读取并赋值的项数。也就是如果一个都没有成功的读取,那么返回值就是0,表示0项。

在使用scanf进行输入时,通常会忽略前导空白字符(如空格,制表符或换行符)。和cin一样


这道题写了好久好久。还是写错了😂

有问题欢迎指出,一起加油!!!!

相关推荐

  1. P8665 [ 2018 A] 航班时间

    2024-03-18 01:22:01       41 阅读
  2. P8665 [ 2018 A] 航班时间-洛谷

    2024-03-18 01:22:01       48 阅读
  3. 洛谷 P8664 [ 2018 A] 付账问题

    2024-03-18 01:22:01       62 阅读
  4. [ 2018 A] 航班时间

    2024-03-18 01:22:01       36 阅读
  5. P8685 [ 2019 A] 外卖店优先级

    2024-03-18 01:22:01       34 阅读
  6. 洛谷 P8661 [ 2018 B] 日志统计

    2024-03-18 01:22:01       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 01:22:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 01:22:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 01:22:01       87 阅读
  4. Python语言-面向对象

    2024-03-18 01:22:01       96 阅读

热门阅读

  1. excel封装和ddt D17

    2024-03-18 01:22:01       43 阅读
  2. [蓝桥杯 2020 省 AB1] 走方格

    2024-03-18 01:22:01       38 阅读
  3. nuxtjs 如何通过ecosystem.config.js配置pm2?

    2024-03-18 01:22:01       38 阅读
  4. 解释 Git 的基本概念和使用方式。

    2024-03-18 01:22:01       39 阅读
  5. Linux之Shell脚本

    2024-03-18 01:22:01       39 阅读
  6. 2023蓝桥杯省赛真题分糖果 |枚举+DFS

    2024-03-18 01:22:01       54 阅读
  7. HTML与CSS

    2024-03-18 01:22:01       45 阅读
  8. 前端开发者如何开发自己的生态网站

    2024-03-18 01:22:01       34 阅读
  9. Rust 01.变量、类型、函数

    2024-03-18 01:22:01       34 阅读
  10. Redis集群原理解析

    2024-03-18 01:22:01       39 阅读
  11. C++面试100问(十)

    2024-03-18 01:22:01       44 阅读
  12. python内置函数 L

    2024-03-18 01:22:01       43 阅读
  13. 京东按关键字搜索商品 API 返回值说明

    2024-03-18 01:22:01       44 阅读