admin 管理员组文章数量: 887021
2024年2月23日发(作者:七号基本笔趣阁)
结构体排序c语言
在C语言中,我们可以使用qsort函数来对结构体数组进行排序。qsort函数是C标准库中的一个通用排序函数,可以用于任何类型的数组。为了使用qsort函数对结构体数组进行排序,我们需要提供比较函数,该函数告诉qsort如何比较两个结构体实例。
下面是一个例子,假设我们有一个结构体表示学生,包括姓名和分数:
#include
#include
#include
typedef struct {
char name[50];
int score;
} Student;
int compare_students(const void *a, const void *b) {
Student *studentA = (Student *) a;
Student *studentB = (Student *) b;
return studentA->score - studentB->score;
}
int main() {
Student students[] = {{"Alice", 90}, {"Bob", 85},
{"Charlie", 95}, {"Dave", 88}};
int n = sizeof(students) / sizeof(Student);
qsort(students, n, sizeof(Student),
compare_students);
for (int i = 0; i < n; i++) {
printf("Name: %s, Score: %dn",
students[i].name, students[i].score);
}
return 0;
}
在上面的代码中,我们定义了一个比较函数compare_students,该函数接受两个void指针作为参数,将它们转换为Student指针,并比较它们的分数。然后我们调用qsort函数来对学生数组进行排序。最后,我们循环遍历排序后的数组并打印每个学生的姓名和分数。
版权声明:本文标题:结构体排序c语言 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708702771h529686.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论