用C语言编写一个程序:输入十个同学的计算机成绩有小数点,计算并输出这十个同学的计算机平均成绩,并用冒泡排序降序输出这十个数,并运行通过
时间: 2024-10-13 09:13:38 浏览: 38
计算机二级c语言资料-计算机二级c语言编程练习题之个人成绩平均分计算.zip
好的,我可以帮你解释一下如何用C语言编写这样一个程序。首先,我们需要包含一些必要的头文件,然后定义结构体存储学生的姓名和成绩,接着会使用`main`函数进行交互式输入和处理。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
char name[50];
float score;
} Student;
// 冒泡排序函数
void bubble_sort(Student arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j].score > arr[j + 1].score) {
// 交换元素
Student temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
const int NUM_STUDENTS = 10;
Student students[NUM_STUDENTS];
// 输入学生信息及成绩
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第 %d 名同学的姓名和计算机成绩:", i + 1);
scanf("%s%f", students[i].name, &students[i].score);
}
// 计算平均分
float total_score = 0;
for (int i = 0; i < NUM_STUDENTS; i++) {
total_score += students[i].score;
}
float average_score = total_score / NUM_STUDENTS;
printf("所有同学计算机成绩的平均分为 %.2f\n", average_score);
// 排序并打印成绩
bubble_sort(students, NUM_STUDENTS);
printf("按成绩降序排列的成绩:\n");
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("%s: %.2f\n", students[i].name, students[i].score);
}
return 0;
}
```
这个程序首先接收十个同学的姓名和成绩,计算平均分,然后对成绩数组进行冒泡排序,最后按降序打印出成绩列表。注意,这里我们假设了姓名最多只有50个字符。记得在实际运行此程序前,需要将它保存到`.c`文件并用C编译器(如gcc)编译并运行。
阅读全文