C语言 十名学生成绩分别为98.5 90 67 77.5 66 100 92 83 78用冒泡排序法对这十名学生成绩从大到小排序
时间: 2024-12-12 19:21:57 浏览: 10
在C语言中,你可以使用冒泡排序算法来对这十名学生的成绩进行降序排序。冒泡排序是一种简单的比较排序算法,它反复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。下面是针对给定的成绩数组进行冒泡排序的一个示例:
```c
#include <stdio.h>
void bubbleSort(float arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// 交换 arr[j] 和 arr[j+1]
float temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
float scores[] = {98.5, 90, 67, 77.5, 66, 100, 92, 83, 78};
int n = sizeof(scores) / sizeof(scores[0]);
printf("原始成绩:\n");
for (int i = 0; i < n; i++) {
printf("%.1f ", scores[i]);
}
bubbleSort(scores, n);
printf("\n按成绩从高到低排序后的成绩:\n");
for (int i = 0; i < n; i++) {
printf("%.1f ", scores[i]);
}
return 0;
}
```
运行这个程序,你会得到成绩的大致排序结果。注意,冒泡排序的时间复杂度是O(n^2),对于大规模数据不是最优选择。
阅读全文