C语言学生管理系统:实现高效排序功能
在C语言中,我们可以使用冒泡排序、选择排序、插入排序等基本排序算法来实现学生信息的高效排序。这里我们以冒泡排序为例,实现一个学生管理系统的排序功能。
首先,我们需要定义一个结构体来存储学生信息,包括学号、姓名和成绩。然后,我们需要定义一个函数来实现冒泡排序。在这个函数中,我们需要遍历整个数组,比较相邻的两个元素,如果前一个元素大于后一个元素,就交换它们的位置。这样,每次遍历结束后,最大的元素就会移动到数组的末尾。重复这个过程,直到整个数组都有序为止。
以下是实现冒泡排序的C代码:
```c
#include
typedef struct {
int id;
char name[20];
float score;
} Student;
void bubble_sort(Student arr[], int n) {
- for (int i = 0; i < n
- 1; i++) { for (int j = 0; j < n
- i - 1; j++) {
if (arr[j].score > arr[j + 1].score) {
// 交换两个元素的位置
Student temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
Student students[5] = {{1, "张三", 89.5}, {2, "李四", 90.0}, {3, "王五", 78.5}, {4, "赵六", 88.0}, {5, "孙七", 92.0}};
int n = sizeof(students) / sizeof(students[0]);
bubble_sort(students, n);
for (int i = 0; i < n; i++) {
printf("学号:%d,姓名:%s,成绩:%.2f
", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
这段代码首先定义了一个结构体`Student`来存储学生信息,然后定义了一个冒泡排序函数`bubble_sort`来实现排序功能。在`main`函数中,我们创建了一个包含5个学生的数组,并调用`bubble_sort`函数进行排序。最后,我们遍历排序后的数组,打印出每个学生的信息。