帮我用c语言写一段关于学生按总成绩排序的order函数
时间: 2024-10-29 22:25:37 浏览: 5
c语言学生成绩管理系统综合实训.doc
在C语言中,我们可以使用冒泡排序算法来实现学生按照总成绩的排序。假设我们有一个结构体`Student`,包含姓名`name`和总成绩`total_score`。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int total_score;
} Student;
// 冒泡排序函数,用于按照总成绩排序
void order(Student students[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (students[j].total_score > students[j + 1].total_score) {
// 交换元素
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
}
// 打印学生信息
void print_students(Student students[], int n) {
for (int i = 0; i < n; i++) {
printf("学生 %s 的总成绩: %d\n", students[i].name, students[i].total_score);
}
}
int main() {
Student students[] = {{"Tom", 85}, {"Jerry", 95}, {"Spike", 75}};
int n = sizeof(students) / sizeof(students[0]);
printf("原始成绩:\n");
print_students(students, n);
order(students, n);
printf("\n按总成绩排序后的成绩:\n");
print_students(students, n);
return 0;
}
```
这个程序首先定义了一个`Student`结构,并实现了`order`函数来对数组中的学生按照总成绩升序排列。然后在`main`函数中创建了学生数组并打印出原始成绩,调用`order`函数排序后再打印出排序后的成绩。
阅读全文