按成绩从高到低或从低到高,遍历所有同学,不需要先排序。
#include"stdio.h"
#include"string.h"
int main(void) {
int i, j, flag = 0, n = 0, max = 0, min = 0;
char name[200][32] = {0};
int num[200] = {0};
scanf("%d", &n);
scanf("%d", &flag);
for (i = 0; i < n; i++) {
scanf("%s %d", name[i], &num[i]);
if (num[i] > max) {
max = num[i];
}
if (num[i] < min) {
min = num[i];
}
}
if (flag == 0) {
for (i = max; i >= min; i--) {
for (j = 0; j < n; j++) {
if (num[j] == i) {
printf("%s %d\n", name[j], num[j]);
}
}
}
} else {
for (i = min; i <= max; i++) {
for (j = 0; j < n; j++) {
if (num[j] == i) {
printf("%s %d\n", name[j], num[j]);
}
}
}
}
return 0;
}



京公网安备 11010502036488号