用c写王驰 P201713087 8 李尚璇 P201713098 20 马鹏翔 P201713089 15 杨玉梅 P201713132 17 杨颖利 P201713131 10 // 设计一个结构体,用来保存这些数据,按照分数从大到小进行输出
时间: 2024-01-02 17:01:49 浏览: 26
好的,我可以为您提供代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[20];
char id[20];
int score;
} Student;
int cmp(const void *a, const void *b) {
return ((Student*)b)->score - ((Student*)a)->score;
}
int main() {
Student students[] = {
{"王驰", "P201713087", 8},
{"李尚璇", "P201713098", 20},
{"马鹏翔", "P201713089", 15},
{"杨玉梅", "P201713132", 17},
{"杨颖利", "P201713131", 10}
};
int n = sizeof(students) / sizeof(students[0]);
qsort(students, n, sizeof(Student), cmp);
for (int i = 0; i < n; i++) {
printf("%s %s %d\n", students[i].name, students[i].id, students[i].score);
}
return 0;
}
```
这段代码定义了一个名为 `Student` 的结构体,用来保存每个学生的姓名、学号和分数。然后使用数组初始化的方式创建了一个包含五个学生信息的数组 `students`。接着使用 `qsort` 函数对 `students` 数组进行排序,排序的依据是每个学生的分数。最后按照分数从大到小输出了每个学生的姓名、学号和分数。
请注意,这段代码仅供参考,实际应用时需要根据具体情况进行修改。