PAT 乙级 1028 人口普查 (20分)
原题链接
测试点3段错误检查了好久,要考虑输入都不合法的情况
#include<stdio.h>
struct node {
char name[10];
int yy, mon, day;
int he;
}shuruname[100010];
int main()
{
int n, min, max, minhe = 20140906, maxhe = 18140906, count = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s %d/%d/%d", shuruname[i].name, &shuruname[i].yy, &shuruname[i].mon, &shuruname[i].day);
shuruname[i].he = shuruname[i].yy * 10000 + shuruname[i].mon * 100 + shuruname[i].day;
if (shuruname[i].he >= 18140906 && shuruname[i].he <= 20140906) {
count++;
if (shuruname[i].he <= minhe) {
minhe = shuruname[i].he;
min = i;
}
if (shuruname[i].he >= maxhe) {
maxhe = shuruname[i].he;
max = i;
}
}
}
if (count == 0)printf("%d", count);
else {
printf("%d %s %s", count, shuruname[min].name, shuruname[max].name);
}
return 0;
}