题解 | 成绩排序
成绩排序
https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1
为什么自测是对的,但是提交显示一个用例也没通过,排序是稳定的
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student {
char name[20];
int chenji;
} stu;
int main() {
int n;
int x;
while (scanf("%d", &n) != EOF) {
stu stu[n], temp;
scanf("%d", &x);
for (int i = 0; i < n; i++) {
scanf("%s %d", stu[i].name, &stu[i].chenji);
}
if (x == 0) {
//降序
for (int j = 0; j < n - 1; j++) {
for (int k = j; k < n; k++) {
if (stu[j].chenji < stu[k].chenji) {
temp = stu[j];
stu[j] = stu[k];
stu[k] = temp;
}
}
}
for (int i = 0; i < n; i++) {
printf("%s %d\n", stu[i].name, stu[i].chenji);
}
}
if (x == 1) {
//升序
for (int j = 0; j < n - 1; j++) {
for (int k = j; k < n; k++) {
if (stu[j].chenji > stu[k].chenji) {
temp = stu[j];
stu[j] = stu[k];
stu[k] = temp;
}
}
}
for (int i = 0; i < n; i++) {
printf("%s %d\n", stu[i].name, stu[i].chenji);
}
}
}
return 0;
}

