原題:
實現思路: 建立乙個結構體, 分別包含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...