1028. 人口普查(20)

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过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
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdio.h>
#include <string>using namespace std;struct people
{char name[10];int yy;int mm;int dd;
}oldest,youngest,zuo,you,temp;bool xiaoyu(people a, people b)
{if (a.yy != b.yy)  return a.yy <= b.yy;else if (a.mm != b.mm) return a.mm <= b.mm;else return a.dd <= b.dd;
}bool dayu(people a, people b)
{if (a.yy != b.yy)  return a.yy >= b.yy;else if (a.mm != b.mm) return a.mm >= b.mm;else return a.dd >= b.dd;
}int main()
{youngest.yy = zuo.yy = 1814;oldest.yy = you.yy = 2014;youngest.mm = oldest.mm = zuo.mm = you.mm = 9;youngest.dd = oldest.dd = zuo.dd = you.dd = 6;int n, cnt = 0;cin >> n;for (int i = 0; i < n; i++){scanf("%s %d/%d/%d", temp.name, &temp.yy, &temp.mm, &temp.dd);if (dayu(temp, zuo) && xiaoyu(temp, you)){cnt++;if (xiaoyu(temp, oldest)) oldest = temp;if (dayu(temp, youngest)) youngest = temp;}}if (cnt == 0) cout << "0" << endl;else cout << cnt << " " << oldest.name << " "<<youngest.name << endl;system("pause");return 0;
}

转载于:https://www.cnblogs.com/brightz2017/p/6580552.html

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

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

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

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

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

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

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

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

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

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

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

  6. 1028 人口普查(20)(20 分)

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

  7. PAT乙级—1028. 人口普查(20)-native

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

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

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

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

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

最新文章

  1. linux基础学习(二)
  2. 《The Elements of User Experience》读书笔记
  3. linux eclipse web插件,使用Tomcat插件开发WEB应用
  4. RabbitMQ学习总结(3)——入门实例教程详解
  5. /src/log4j.xml
  6. 通过java查询数据库表结构
  7. 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和...
  8. 易天ETU-link 100G QSFP28光模块系列资料
  9. braft中AppendEntries逻辑
  10. paip. mysql如何临时 暂时 禁用 关闭 触发器
  11. 界面扩大缩小操作按钮_少儿编程|04.Scratch编程基本操作
  12. 2.4g和5g要不要合并_路由器2.4g和5g双频合一好还是分开好
  13. flutter 上滑悬浮吸顶
  14. 数字万用表数字多用表软件下载安装教程
  15. 小米WatchS2和小米WatchS1 区别 哪个值得入手
  16. 微信支付平台设置及如何获取微信支付所需参数
  17. 七巧板复原算法之小结局——给出一个最大结果集
  18. ubuntu在编译opencv3.4.1遇到[modules/calib3d/CMakeFiles/opencv_calib3d.dir/src/dls.cpp.o]错误
  19. 【Java就业培训教材】——集合的学习
  20. 微信如何做到只接收某一个人的消息提醒

热门文章

  1. flask框架数据库增删改查
  2. Java编程讲义之Eclipse开发工具
  3. oracle基本结构
  4. node:ORM、数据模型、脚本创建模型与服务层
  5. 《剑指offer》二进制中1的个数
  6. 信用评分卡—信贷准入A卡(逻辑回归)
  7. K-means聚类算法详解
  8. Scala入门到精通——第六节:类和对象(一)
  9. MySQL死锁案例分:先delete,再insert,导致死锁
  10. JVM实用参数(五)新生代垃圾回收