C++学习之路 | PTA乙级—— 1028 人口普查 (20 分)(精简)
生活随笔
收集整理的這篇文章主要介紹了
C++学习之路 | PTA乙级—— 1028 人口普查 (20 分)(精简)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1028 人口普查 (20 分)
某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程序,找出鎮上最年長和最年輕的人。
這里確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過 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
#include <iostream> using namespace std; int main() {int n, cnt = 0;cin >> n;string name, birth, maxname, minname, maxbirth = "1814/09/06", minbirth = "2014/09/06";for (int i = 0; i < n; i++) {cin >> name >> birth;if (birth >= "1814/09/06" && birth <= "2014/09/06") {cnt++;if (birth >= maxbirth) {maxbirth = birth;maxname = name;}if (birth <= minbirth) {minbirth = birth;minname = name;}}}cout << cnt;if (cnt != 0) cout << " " << minname << " " << maxname;return 0; }總結
以上是生活随笔為你收集整理的C++学习之路 | PTA乙级—— 1028 人口普查 (20 分)(精简)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql profile 调试sql_
- 下一篇: 南开大学java考试试题_2014秋学期