有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息,直接给完整c语言结构体代码,不要解释
时间: 2023-03-30 22:04:30 浏览: 241
这是一个使用 C 语言结构体按成绩排序的完整代码示例:
```
#include <stdio.h>
#include <stdlib.h>
// 定义结构体
struct student {
int id;
char name[100];
int score;
};
// 比较函数,用于 qsort 函数
int compare(const void *a, const void *b) {
struct student *s1 = (struct student *)a;
struct student *s2 = (struct student *)b;
return s2->score - s1->score; // 按成绩降序排序
}
int main() {
// 定义并初始化结构体数组
struct student students[] = {
{1, "张三", 90},
{2, "李四", 80},
{3, "王五", 95},
{4, "赵六", 85},
};
int n = sizeof(students) / sizeof(struct student); // 计算数组长度
// 使用 qsort 函数进行排序
qsort(students, n, sizeof(struct student), compare);
// 遍历数组,输出学生信息
for (int i = 0; i < n; i++) {
printf("学号:%d 姓名:%s 成绩:%d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
在这段代码中,我们定义了一个结构体 `struct student`,其中包含学号、姓名和成绩三个字段。然后,我们创建了一个结构体数组 `students`,并对其进行排序。最后,我们使用一个循环遍历数组,并输出每个学生的信息。
注意,这段代码使用了 `qsort` 函数进行排序,它是 C 语言标准库中的一个快速排
阅读全文