使用C语言要求输入十个同学的计算机成绩,计算并输出这十个同学的计算机平均成绩,并用冒泡排序降序输出这十个数,并运行通过
时间: 2024-10-21 21:03:34 浏览: 27
实现输入成绩,输出成绩等级
在C语言中,你可以使用以下步骤来实现这个功能:
1. **输入十个同学的计算机成绩**:
首先,你需要创建一个数组来存储这些成绩,然后使用`scanf`函数从用户那里获取数据。例如:
```c
#include <stdio.h>
int scores[10];
void input_scores() {
for (int i = 0; i < 10; i++) {
printf("请输入第 %d 位同学的计算机成绩:", i + 1);
scanf("%d", &scores[i]);
}
}
```
2. **计算平均成绩**:
然后编写一个函数来计算平均成绩:
```c
float calculate_average() {
float sum = 0;
for (int i = 0; i < 10; i++) {
sum += scores[i];
}
return sum / 10;
}
```
3. **冒泡排序**:
冒泡排序可以按降序排列数组,先遍历一遍记录最大值的位置,然后再进行完整的冒泡排序过程:
```c
void bubble_sort_descending(int arr[], int n) {
// 找到最大值的位置
int max_idx = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_idx]) {
max_idx = i;
}
}
// 冒泡排序
for (int j = 0; j < n - 1; j++) {
for (int k = 0; k < n - 1 - j; k++) {
if (arr[k] < arr[k + 1]) {
int temp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = temp;
}
}
}
}
// 调用排序函数
void print_sorted_scores() {
bubble_sort_descending(scores, 10);
printf("按照降序排列的成绩:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", scores[i]);
}
}
```
4. **完整程序**:
最后将所有部分组合成一个main函数:
```c
int main() {
input_scores();
float avg_score = calculate_average();
printf("平均成绩:%.2f\n", avg_score);
print_sorted_scores();
return 0;
}
```
运行此程序,即可完成输入、计算和输出的要求。
阅读全文