现有 10名学生的一门课成绩,请用“冒泡排序法”(也称起泡排序法),将学生成绩从大到小的降序排序,请写出C语言程序。 注:学生人数用符号常量,即 #define N 10
时间: 2024-12-14 18:26:53 浏览: 8
当然可以,以下是使用C语言编写的一个简单的冒泡排序算法来对10名学生的成绩进行降序排列的示例:
```c
#include <stdio.h>
#define N 10
// 定义结构体表示学生及其成绩
typedef struct {
int student_id;
float score;
} Student;
// 冒泡排序函数
void bubbleSort(Student scores[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
// 如果当前元素小于下一个元素,则交换它们
if (scores[j].score < scores[j + 1].score) {
Student temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
}
int main() {
Student students[N] = {0}; // 初始化10个空的学生记录
// 假设输入每个学生的成绩和ID,这里省略实际输入部分
// 对成绩数组进行排序
bubbleSort(students, N);
printf("学生成绩从高到低排序:\n");
for (int i = 0; i < N; i++) {
printf("学生 %d 的成绩: %.2f\n", students[i].student_id, students[i].score);
}
return 0;
}
```
这个程序首先定义了一个学生结构体,并使用冒泡排序算法对成绩数组进行降序排序。然后,在`main`函数中,你可以根据需要填充学生的成绩和ID信息。
阅读全文