1028 人口普查 20

2022-03-03 04:03:03 字數 1313 閱讀 2086

原題:

實現思路: 建立乙個結構體, 分別包含name, year, month, person

首先錄入全部人口資訊, 邊錄入邊過濾掉不合理的生日. 最後遍歷合理人口資料, 找到最年長的人和

最年輕的人即可.

坑1: 題目中明確說了, 不會出現並列. 但根據測試, 有可能出現人口為0的情況, 也就是測試點3,

此時應該輸出"0".

完整**:

#include struct person ;

typedef struct person s_person;

int tyear = 2014; // 今年

int tmonth = 9; // 今月

int tday = 6; // 今日

int maxage = 200; // 鎮上最大年齡

int i;

int judge (s_person psn);

int compare (s_person psn1, s_person psn2);

int main (void)

}youngest = allpeople[0]; // 初始值

oldest = allpeople[0]; // 初始值

for (i=1; ityear) else if (psn.year == tyear && psn.month > tmonth) else if (

psn.year == tyear &&

psn.month == tmonth &&

psn.day > tday

) else

}// 判斷2個人年齡相對大小(前提自然是2人生日均合理)

// 相等返回0, 第1個人年齡大返回1, 第2人年齡大返回2

// 實現思路, 排除1比2大和相等的情況, 剩下的就是1比2小

int compare (s_person psn1, s_person psn2) else if (psn1.year == psn2.year && psn1.month < psn2.month) else if (

psn1.year == psn2.year &&

psn1.month == psn2.month &&

psn1.day < psn2.day

) else if (

psn1.year == psn2.year &&

psn1.month == psn2.month &&

psn1.day == psn2.day

) else

}

1028 人口普查 20

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

1028 人口普查 20

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。這裡確保每個輸入的日期都是合法的,但不一定是合理的 假設已知鎮上沒有超過200歲的老...

1028 人口普查 20

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