编写一个C语言程序,输入班级十名学生的数据结构成绩,求出这十名学生成绩的平均数、最高分、最低分;此外,将这十名学生成绩按降序排序好。
时间: 2024-09-09 08:02:07 浏览: 48
首先,我们需要定义一个结构体来存储学生的数据和成绩,然后编写函数来计算平均分、最高分、最低分,并且实现降序排序。下面是一个简单的C语言程序示例:
```c
#include <stdio.h>
#define STUDENT_COUNT 10
// 定义学生数据结构体
typedef struct {
char name[50];
float score;
} Student;
// 函数声明
float calculateAverage(Student students[], int length);
float findMaxScore(Student students[], int length);
float findMinScore(Student students[], int length);
void sortScoresDescending(Student students[], int length);
int main() {
Student students[STUDENT_COUNT];
float average, maxScore, minScore;
// 输入学生数据和成绩
for (int i = 0; i < STUDENT_COUNT; i++) {
printf("请输入第%d名学生的姓名: ", i + 1);
scanf("%s", students[i].name);
printf("请输入%s的成绩: ", students[i].name);
scanf("%f", &students[i].score);
}
// 计算平均分、最高分、最低分
average = calculateAverage(students, STUDENT_COUNT);
maxScore = findMaxScore(students, STUDENT_COUNT);
minScore = findMinScore(students, STUDENT_COUNT);
// 输出结果
printf("平均分: %.2f\n", average);
printf("最高分: %.2f\n", maxScore);
printf("最低分: %.2f\n", minScore);
// 降序排序
sortScoresDescending(students, STUDENT_COUNT);
// 打印排序后的学生成绩
printf("降序排序后的学生成绩:\n");
for (int i = 0; i < STUDENT_COUNT; i++) {
printf("%s: %.2f\n", students[i].name, students[i].score);
}
return 0;
}
// 计算平均分
float calculateAverage(Student students[], int length) {
float sum = 0.0;
for (int i = 0; i < length; i++) {
sum += students[i].score;
}
return sum / length;
}
// 找到最高分
float findMaxScore(Student students[], int length) {
float max = students[0].score;
for (int i = 1; i < length; i++) {
if (students[i].score > max) {
max = students[i].score;
}
}
return max;
}
// 找到最低分
float findMinScore(Student students[], int length) {
float min = students[0].score;
for (int i = 1; i < length; i++) {
if (students[i].score < min) {
min = students[i].score;
}
}
return min;
}
// 降序排序函数
void sortScoresDescending(Student students[], int length) {
for (int i = 0; i < length - 1; i++) {
for (int j = i + 1; j < length; j++) {
if (students[i].score < students[j].score) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
```
这个程序首先定义了一个`Student`结构体来存储学生的姓名和成绩。然后定义了几个函数来计算平均分、最高分、最低分,并且实现了一个简单的冒泡排序算法来对成绩进行降序排序。在`main`函数中,程序会提示用户输入10名学生的姓名和成绩,然后调用相应的函数来处理数据并输出结果。
阅读全文