人口普查

淩亂°似流年 2023-07-19 12:15 114阅读 0赞

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。
这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。
输入格式:
输入在第一行给出正整数 N,取值在(0,10​5​​];随后 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

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int n,count=0;
  6. cin>>n;
  7. string mm,mn,maxb="00000000",minb="20140906";
  8. for(int i=0;i<n;i++)
  9. {
  10. string name,birth,year,month,date,temp;
  11. cin>>name>>birth;
  12. year.assign(birth, 0, 4);
  13. month.assign(birth, 5, 2);
  14. date.assign(birth, 8, 2);
  15. temp = year+month+date;
  16. if(temp>"20140906"||temp<"18140906")
  17. {
  18. continue;
  19. }
  20. count++;
  21. if(temp>maxb)
  22. {
  23. maxb=temp;
  24. mm=name;
  25. }
  26. if(temp < minb)
  27. {
  28. minb = temp;
  29. mn = name;
  30. }
  31. }
  32. if(count==0)
  33. {
  34. cout<<0;
  35. return 0;
  36. }
  37. cout<<count<<" ";
  38. cout<<mn<<" "<<mm;
  39. return 0;
  40. }

发表评论

表情:
评论列表 (有 0 条评论,114人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1028 人口普查(JAVA)

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

    相关 人口普查

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

    相关 1028 人口普查 (Python实现)

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

    相关 人口普查数据有疑问???

    前几天,人口普查数据终于出来了,千呼万唤之下。 我观察了一下,数据出来了之后,我所在的几乎每个微信群都在聊人口普查的数据。 在知乎上这个问题也霸占了一天的热榜第一名,

    相关 1028. 人口普查(20)

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

    相关 1028 人口普查

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