C语言定义一个函数sort用来实现对某门课程的班级成绩按降序排序
时间: 2024-12-19 16:18:38 浏览: 5
在C语言中,你可以使用标准库函数`qsort`来实现对数组元素的排序,包括班级成绩。首先,你需要定义一个结构体来存储课程信息,比如班级名和成绩,然后定义一个比较函数,用于告诉`qsort`如何判断成绩的大小关系。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义课程成绩结构体
typedef struct {
char className[50];
int score;
} CourseScore;
// 比较函数,用于降序排列
int compare(const void *a, const void *b) {
CourseScore scores[] = {*(CourseScore*)a, *(CourseScore*)b};
return scores[1].score - scores[0].score; // 如果分数越大越靠前,则为负数表示降序
}
// 函数声明
void sortCourses(CourseScore course[], int numCourses);
int main() {
CourseScore courses[] = {{"A班", 95}, {"B班", 88}, {"C班", 97}};
int numCourses = sizeof(courses) / sizeof(courses[0]);
printf("原始成绩:\n");
for (int i = 0; i < numCourses; i++) {
printf("%s: %d\n", courses[i].className, courses[i].score);
}
sortCourses(courses, numCourses);
printf("\n按降序排序后的成绩:\n");
for (int i = 0; i < numCourses; i++) {
printf("%s: %d\n", courses[i].className, courses[i].score);
}
return 0;
}
// 实现排序函数
void sortCourses(CourseScore course[], int numCourses) {
qsort(course, numCourses, sizeof(CourseScore), compare);
}
```
在这个例子中,`sortCourses`函数接收一个`CourseScore`类型的数组和数组长度,通过`compare`函数告诉`qsort`我们希望按照`score`字段降序排列。
阅读全文