pat B1028 人口普查

2021-10-02 07:47:14 字數 718 閱讀 3554

題目鏈結->link

參考演算法筆記的原始碼。

首先要判斷是否出生日期是否合法,其次要比較出年齡最大和年齡最小的人,故可以先初始化左右邊界值以及年齡最大、最小人的初始值,每一次輸入首先判斷是否合法,再比較並更新年齡最大、最小的人,並計數。因為有左右邊界並且可能同時更新最大和最小值,所以需要有大於等於和小於等於兩個比較函式。

特殊情況是當所有輸入都不合法時,輸出0。

#include

#include

#include

#include

using

namespace std;

struct personoldest,youngest,temp,left,right;

void

init()

bool

moreequ

(person a,person b)

bool

lessequ

(person a,person b)

intmain()

}if(count==0)

printf

("0\n");

else

printf

("%d %s %s\n"

,count,oldest.name,youngest.name)

;return0;

}

PAT B1028 人口普查

1028 人口普查 20 分 某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。這裡確保每個輸入的日期都是合法的,但不一定是合理的 假設已知鎮上沒有超過 200 歲的老人,而今天是 2014 年 9 月 6 日,所以超過 200 歲的生日和未出生的生日都是不合理的...

PAT B1028 人口普查

某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。這裡確保每個輸入的日期都是合法的,但不一定是合理的 假設已知鎮上沒有超過 200 歲的老人,而今天是 2014 年 9 月 6 日,所以超過 200 歲的生日和未出生的生日都是不合理的,應該被過濾掉。輸入在第一行給...

PAT B1028 人口普查

某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。這裡確保每個輸入的日期都是合法的,但不一定是合理的 假設已知鎮上沒有超過 200 歲的老人,而今天是 2014 年 9 月 6 日,所以超過 200 歲的生日和未出生的生日都是不合理的,應該被過濾掉。輸入在第一行給...