学生成绩排序结构体c语言
时间: 2024-11-29 12:09:55 浏览: 4
C语言结构体版学生成绩管理系统
5星 · 资源好评率100%
在C语言中,我们可以创建一个结构体来存储学生的成绩信息,并利用数组或链表等数据结构来对学生成绩进行排序。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50]; // 学生姓名
int score; // 成绩
} Student;
// 比较函数,用于qsort排序,这里我们按分数降序排列
int compare(const void *a, const void *b) {
const Student *s1 = (const Student *) a;
const Student *s2 = (const Student *) b;
return s2- s1->score; // 降序
}
// 主函数示例,演示如何对学生成绩数组排序
void sortStudents(Student students[], int size) {
if (size > 1) {
qsort(students, size, sizeof(Student), compare);
}
printf("排序后的学生列表:\n");
for (int i = 0; i < size; i++) {
printf("%s: %d\n", students[i].name, students[i].score);
}
}
int main() {
Student students[] = {
{"张三", 90},
{"李四", 85},
{"王五", 95},
{"赵六", 78}
};
int size = sizeof(students) / sizeof(students[0]);
sortStudents(students, size);
return 0;
}
```
在这个例子中,我们定义了一个`Student`结构体,包含名字和成绩两个字段。`compare`函数实现了比较两个`Student`结构体的`score`字段,`sortStudents`函数则使用`qsort`函数对数组进行排序。在`main`函数中,我们创建了一个学生数组并调用了排序函数。
阅读全文