c语言用冒泡排序输入15个成绩由高到低排序并计算平均成绩高于平均分成绩数低于平均分成绩数以及等于平均分成绩数
时间: 2024-09-12 14:08:53 浏览: 74
在C语言中,我们可以使用冒泡排序算法对一组成绩数组进行降序排列,然后计算平均分,并统计高于、低于及等于平均分的成绩数量。以下是简单的步骤:
1. 定义一个函数 `bubble_sort` 来实现冒泡排序,它接受一个整型数组和数组长度作为参数。
2. 另外,编写一个函数 `calculate_average` 计算给定数组的平均分。
3. 主函数中,首先读取15个分数存入数组,然后调用排序函数和平均分函数。
4. 最后,遍历排序后的数组,统计高于平均分、低于平均分和等于平均分的成绩。
以下是一个简化的示例代码:
```c
#include <stdio.h>
void bubble_sort(int 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]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
double calculate_average(int arr[], int n) {
double sum = 0;
for (int i = 0; i < n; i++)
sum += arr[i];
return sum / n;
}
int main() {
int scores[15];
// 读取15个成绩...
for (int i = 0; i < 15; i++)
scanf("%d", &scores[i]);
bubble_sort(scores, 15);
double avg = calculate_average(scores, 15);
int above_avg = 0, below_avg = 0, equal_avg = 0;
for (int i = 0; i < 15; i++) {
if (scores[i] > avg)
above_avg++;
else if (scores[i] < avg)
below_avg++;
else
equal_avg++;
}
printf("Sorted array:\n");
// 输出成绩...
printf("\nAverage score: %.2f\n", avg);
printf("Scores above average: %d\n", above_avg);
printf("Scores below average: %d\n", below_avg);
printf("Scores equal to average: %d\n", equal_avg);
return 0;
}
```
阅读全文