c语言中用冒泡进行排序 计算平均分 从高到低排序 高于平均分的学生数 低于学生平均分的学生数 等于平均分的学生数
时间: 2024-09-08 16:02:47 浏览: 28
在C语言中,我们可以使用冒泡排序算法对一组分数数组进行排序。首先,我们定义一个冒泡排序函数,然后计算所有学生的总分和平均分。以下是基本步骤:
1. 冒泡排序:
```c
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. 计算平均分:
```c
double calculateAverage(int scores[], int count) {
double sum = 0;
for (int i = 0; i < count; i++) {
sum += scores[i];
}
return sum / count;
}
```
3. 分数分类(从高到低排序并计数):
```c
void classifyScores(int scores[], int count, int* aboveAverage, int* belowAverage, int* equalAverage) {
bubbleSort(scores, count);
int totalAboveAverage = 0, totalBelowAverage = 0, totalEqualAverage = 0;
double avg = calculateAverage(scores, count);
for (int i = 0; i < count; i++) {
if (scores[i] > avg)
totalAboveAverage++;
else if (scores[i] < avg)
totalBelowAverage++;
else if (scores[i] == avg)
totalEqualAverage++;
}
*aboveAverage = totalAboveAverage;
*belowAverage = totalBelowAverage;
*equalAverage = totalEqualAverage;
}
```
现在你可以调用`classifyScores`函数,并传入学生分数数组、数组长度以及指向结果的指针。