题意:输入n条记录,每条分别是名字,性别,id,成绩,输出成绩最好的女生姓名和id,成绩最差的男生姓名和id,输入两者的成绩差。
思路:遍历一遍就好。
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <climits>
using namespace std;
int n;
char mname[20], fname[20], mid[20], fid[20];
int mmin, femax;
char name[20], id[20], gender[5];
int tmp;
int main() {
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
scanf("%d", &n);
mmin = INT_MAX; femax = INT_MIN;
while (n--) {
scanf("%s %s %s", name, gender, id); scanf("%d", &tmp);
if (gender[0] == 'M') {
if (tmp < mmin) {
mmin = tmp;
strcpy(mname, name);
strcpy(mid, id);
}
} else if (gender[0] == 'F') {
if (tmp > femax) {
femax = tmp;
strcpy(fname, name);
strcpy(fid, id);
}
}
}
bool flag = true;
if (femax == INT_MIN) {
printf("Absent\n"); flag = false;
} else {
printf("%s %s\n", fname, fid);
}
if (mmin == INT_MAX) {
printf("Absent\n"); flag = false;
} else {
printf("%s %s\n", mname, mid);
}
if (flag) printf("%d\n", femax - mmin);
else printf("NA\n");
return 0;
}