pat 乙级 1028 人口普查()-其他
pat 乙级 1028 人口普查()
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <math.h>
5
6 typedef struct people
7 {
8 char name[6];
9 int year;
10 int month;
11 int day;
12 } peo;
13
14 int main()
15 {
16 int n;
17 scanf("%d", &n);
18 peo p[n];
19 for (int i = 0; i < n; i++)
20 {
21 int j = 0;
22 scanf("%s", p[i].name);
23 scanf("%d/%d/%d", &p[i].year, &p[i].month, &p[i].day);
24 }
25 int count = 0;
26 for (int i = 0; i < n; i++)
27 {
28 if (p[i].year > 2014 || p[i].year < 1814)
29 {
30 p[i].year = -1;
31 continue;
32 }
33 if (p[i].year == 2014)
34 {
35 if (p[i].month > 9)
36 {
37 p[i].year = -1;
38 continue;
39 }
40 else if (p[i].month == 9)
41 {
42 if (p[i].day > 6)
43 {
44 p[i].year = -1;
45 continue;
46 }
47 }
48 }
49 if (p[i].year == 1814)
50 {
51 if (p[i].month < 9)
52 {
53 p[i].year = -1;
54 continue;
55 }
56 else if (p[i].month == 9)
57 {
58 if (p[i].day < 6)
59 {
60 p[i].year = -1;
61 continue;
62 }
63 }
64 }
65 count++;
66 }
67 printf("%d", count);
68 int max = 0;
69 int min = 0;
70 for (int i = 0; i < n; i++)
71 {
72 if (p[i].year != -1)
73 {
74 max = i;
75 min = i;
76 break;
77 }
78 }
79 for (int i = 0; i < n; i++)
80 {
81
82 if (p[i].year != -1)
83 {
84 if (p[max].year > p[i].year)
85 {
86
87 max = i;
88 }
89 else if (p[max].year == p[i].year)
90 {
91 if (p[max].month > p[i].month)
92 {
93
94 max = i;
95 }
96 else if (p[max].month == p[i].month)
97 {
98 if (p[max].day > p[i].day)
99 {
100
101 max = i;
102 }
103 }
104 }
105 }
106 }
107 for (int i = 0; i < n; i++)
108 {
109 if (p[i].year != -1)
110 {
111
112 if (p[min].year < p[i].year)
113 {
114
115 min = i;
116 }
117 else if (p[min].year == p[i].year)
118 {
119 if (p[min].month < p[i].month)
120 {
121
122 min = i;
123 }
124 else if (p[min].month == p[i].month)
125 {
126 if (p[min].day < p[i].day)
127 {
128
129 min = i;
130 }
131 }
132 }
133 }
134 }
135 if (p[max].year != -1 && p[min].year != -1)
136 {
137 printf(" %s %s", p[max].name, p[min].name);//需要考虑合理值为0的情形,即year均置为1
138 }
139
140 return 0;
141 }
————————
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <math.h>
5
6 typedef struct people
7 {
8 char name[6];
9 int year;
10 int month;
11 int day;
12 } peo;
13
14 int main()
15 {
16 int n;
17 scanf("%d", &n);
18 peo p[n];
19 for (int i = 0; i < n; i++)
20 {
21 int j = 0;
22 scanf("%s", p[i].name);
23 scanf("%d/%d/%d", &p[i].year, &p[i].month, &p[i].day);
24 }
25 int count = 0;
26 for (int i = 0; i < n; i++)
27 {
28 if (p[i].year > 2014 || p[i].year < 1814)
29 {
30 p[i].year = -1;
31 continue;
32 }
33 if (p[i].year == 2014)
34 {
35 if (p[i].month > 9)
36 {
37 p[i].year = -1;
38 continue;
39 }
40 else if (p[i].month == 9)
41 {
42 if (p[i].day > 6)
43 {
44 p[i].year = -1;
45 continue;
46 }
47 }
48 }
49 if (p[i].year == 1814)
50 {
51 if (p[i].month < 9)
52 {
53 p[i].year = -1;
54 continue;
55 }
56 else if (p[i].month == 9)
57 {
58 if (p[i].day < 6)
59 {
60 p[i].year = -1;
61 continue;
62 }
63 }
64 }
65 count++;
66 }
67 printf("%d", count);
68 int max = 0;
69 int min = 0;
70 for (int i = 0; i < n; i++)
71 {
72 if (p[i].year != -1)
73 {
74 max = i;
75 min = i;
76 break;
77 }
78 }
79 for (int i = 0; i < n; i++)
80 {
81
82 if (p[i].year != -1)
83 {
84 if (p[max].year > p[i].year)
85 {
86
87 max = i;
88 }
89 else if (p[max].year == p[i].year)
90 {
91 if (p[max].month > p[i].month)
92 {
93
94 max = i;
95 }
96 else if (p[max].month == p[i].month)
97 {
98 if (p[max].day > p[i].day)
99 {
100
101 max = i;
102 }
103 }
104 }
105 }
106 }
107 for (int i = 0; i < n; i++)
108 {
109 if (p[i].year != -1)
110 {
111
112 if (p[min].year < p[i].year)
113 {
114
115 min = i;
116 }
117 else if (p[min].year == p[i].year)
118 {
119 if (p[min].month < p[i].month)
120 {
121
122 min = i;
123 }
124 else if (p[min].month == p[i].month)
125 {
126 if (p[min].day < p[i].day)
127 {
128
129 min = i;
130 }
131 }
132 }
133 }
134 }
135 if (p[max].year != -1 && p[min].year != -1)
136 {
137 printf(" %s %s", p[max].name, p[min].name);//需要考虑合理值为0的情形,即year均置为1
138 }
139
140 return 0;
141 }