HJ68.成绩排序 C语言 结构体 qsort
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include <stdio.h>
#include <stdlib.h>
typedef struct Grade {
char name[21];
int value;
};
int cmp1(const void* a, const void* b) {
return (*(struct Grade*)a).value - (*(struct Grade*)b).value;
}
int cmp0(const void* a, const void* b) {
return (*(struct Grade*)b).value - (*(struct Grade*)a).value;
}
int main() {
int N, op, i;
scanf("%d", &N);
scanf("%d", &op);
struct Grade grades[N];
for (i = 0; i < N; i++) {
scanf("%s %d", grades[i].name, &grades[i].value);
}
if (op == 1) {
qsort(grades, N, sizeof(struct Grade), cmp1);
}
if (op == 0) {
qsort(grades, N, sizeof(struct Grade), cmp0);
}
for (i = 0; i < N; i++) {
printf("%s %d\n", grades[i].name, grades[i].value);
}
return 0;
}
查看7道真题和解析