用c语言按照参赛选手顺序序号来进行得分排序
时间: 2024-03-19 17:45:01 浏览: 50
如果要按照参赛选手序号来进行得分排序,可以使用结构体来存储参赛选手信息和得分,然后再按照参赛选手序号进行排序。具体的实现方式如下:
```c
#include <stdio.h>
#include <stdlib.h>
// 参赛选手结构体
struct Contestant {
char name[20]; // 姓名
int id; // 序号
int score; // 得分
};
// 比较函数,用于qsort()排序
int cmp(const void *a, const void *b) {
return ((struct Contestant*)a)->id - ((struct Contestant*)b)->id;
}
int main() {
struct Contestant contestants[] = {
{"Amy", 1, 85},
{"Bob", 2, 76},
{"Cathy", 3, 92},
{"David", 4, 88},
{"Emily", 5, 69},
{"Frank", 6, 78},
{"Grace", 7, 91},
{"Henry", 8, 82},
{"Ivy", 9, 73},
{"Jack", 10, 70}
};
int n = sizeof(contestants) / sizeof(struct Contestant);
qsort(contestants, n, sizeof(struct Contestant), cmp); // 使用qsort()排序
for (int i = 0; i < n; i++) {
printf("%d %s %d\n", contestants[i].id, contestants[i].name, contestants[i].score);
}
return 0;
}
```
上述代码中,使用了结构体Contestant来存储参赛选手信息、序号和得分,然后使用自定义的比较函数cmp()来进行按照序号排序,最后按照参赛选手序号输出排好序的参赛选手信息和得分。
阅读全文