题目描述:

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。
这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。

输入格式:

输入在第一行给出正整数 N,取值在(0,105];随后 N 行,每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

输出格式:

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

输入样例:

5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20

输出样例:

3 Tom John

题解:

C++实现:
#include <iostream>
#include <cstdio>
using namespace std;
struct Date
{char name[10];int y; //年int m; //月int d; //日
};
int main()
{int N = 0, count = 0;cin >> N;struct Date min, max, a;max.y = 2014, max.m = 9, max.d = 7;min.y = 1814, min.m = 9, min.d = 5;while (N--){scanf("%s %d/%d/%d", a.name, &a.y, &a.m, &a.d);count++;if (a.y > 2014 || (a.y == 2014 && a.m > 9) || (a.y == 2014 && a.m == 9 && a.d > 6)){count--;continue; //不符合条件的直接进入下一次循环}else if (a.y < 1814 || (a.y == 1814 && a.m < 9) || (a.y == 1814 && a.m == 9 && a.d < 6)){count--;continue; //不符合条件的直接进入下一次循环}if (a.y < max.y || (a.y == max.y && a.m < max.m) || (a.y == max.y && a.m == max.m && a.d < max.d)){max = a;}if (a.y > min.y || (a.y == min.y && a.m > min.m) || (a.y == min.y && a.m == min.m && a.d > min.d)){min = a;}}printf("%d", count);if (count != 0){printf(" %s %s", max.name, min.name);}return 0;
}

提交结果:

PAT 1028 人口普查 (20 分)相关推荐

  1. PAT乙级1028 人口普查 (20 分)

    1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...

  2. 【2020模拟考试T3】【PAT乙】1028 人口普查 (20分) 字符串比较

    problem 1028 人口普查 (20分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇 ...

  3. 1028 人口普查 (20 分)C++ 示例代码

    1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...

  4. C++学习之路 | PTA乙级—— 1028 人口普查 (20 分)(精简)

    1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...

  5. 1028 人口普查 (20 分)测试点3格式错误

    1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...

  6. 【PAT (Basic Level) 】1028 人口普查 (20 分)

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人.这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

  7. 1028 人口普查 (20 分)(c语言)

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

  8. 测试点3错的来:1028 人口普查 (20分)(解题报告)

    立志用更少的代码做更高效的表达 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 20 ...

  9. 1028 人口普查 (20分)

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

最新文章

  1. 用python做一个图片验证码
  2. 4位数学家获得2018年菲尔兹奖
  3. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】
  4. 340. 通信线路(分层图最短路)
  5. Python中调用Linux命令并获取返回值
  6. 自动化Debias框架,一键去除推荐系统所有Bias
  7. 设计一个笔记本电脑类,属性随意,并且进行属性私有化,对外提供公开的set和get方法。 设计一个可插拔的接口:InsertDrawable,该接口有什么方法自行定义。
  8. 六妙招让死钱变活钱[转]
  9. Laravel-事件简单使用
  10. 力扣-1557. 可以到达所有点的最少点数目
  11. 搭建STM32开发环境——STM32CubeMX并配合Keil5重写跑马灯程序
  12. linux安装monaco字体
  13. Android自定义Dialog的Match_parent无效问题解决
  14. 《Android编程权威指南(第三版)》第五章挑战练习Demo
  15. 【校园卡】更新联通校园卡套餐海报及常规操作,校园卡最新消息及选购建议,增加评论功能...
  16. 实现手机端的触屏滑动效果
  17. Linux 中的内存管理单元MMU
  18. 四目大视场四目夜视镜 --TFN TD401 大视场头盔四目夜视仪 夜视镜 无需转头微光夜视系统 四目四管
  19. 林业数字孪生打造实时树木“管家”
  20. 计算机火线接口指的,[声卡midi接口怎么用]火线接口声卡和midi接口声卡

热门文章

  1. 基于android的系统论文,基于安卓系统的系统毕业论文.doc
  2. macOS无法退出登录,显示关闭所有icloud服务再试一次
  3. MapReduce实现二次排序续(十)
  4. 在Node.js中使用事件,监听器,定时器和回调
  5. 键盘KeyCode对照表
  6. ZOJ 3759 几个二元二次不定方程的解法
  7. VS2013下Boost1.68的编译
  8. PrivaZer(清除上网痕迹)
  9. 跟着我左手右手一个慢动作,轻松提交AppStore(AppStore提交App流程最新超详细攻略)(领证篇)
  10. 启动mysql报错:ERROR! The server quit without updating PID file