输入班级十名学生的数据结构成绩,求出这十名学生成绩的平均数、最高分、最低分;此外,将这十名学生成绩按降序排序好。 使用C、C++编程实现。
时间: 2024-09-07 20:06:04 浏览: 50
首先,我们可以定义一个结构体来存储每个学生的成绩,然后通过数组来存储这些学生的数据。接下来,我们将通过遍历这个数组来计算平均分、最高分和最低分,并且将成绩存储在一个数组中以便进行排序。排序可以通过选择排序、插入排序或其他排序算法实现。下面是一个简单的C语言和C++语言的示例实现。
C语言版本:
```c
#include <stdio.h>
typedef struct {
int id; // 学生ID
float score; // 学生成绩
} Student;
int main() {
Student students[10]; // 存储10名学生的数组
float sum = 0.0; // 成绩总和,用于计算平均分
float maxScore = 0.0; // 最高分
float minScore = 100.0; // 最低分,假设成绩不会超过100分
int i;
// 输入学生的成绩
printf("请输入10名学生的成绩:\n");
for (i = 0; i < 10; i++) {
printf("学生 #%d 的成绩:", i + 1);
scanf("%f", &students[i].score);
sum += students[i].score;
if (students[i].score > maxScore) maxScore = students[i].score;
if (students[i].score < minScore) minScore = students[i].score;
}
// 计算平均分
float average = sum / 10.0;
printf("平均分:%.2f\n", average);
printf("最高分:%.2f\n", maxScore);
printf("最低分:%.2f\n", minScore);
// 降序排序学生的成绩
for (i = 0; i < 9; i++) {
int j;
for (j = 0; j < 9 - i; j++) {
if (students[j].score < students[j + 1].score) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
// 打印排序后的成绩
printf("降序排序后的成绩:\n");
for (i = 0; i < 10; i++) {
printf("学生 #%d 成绩:%.2f\n", students[i].id, students[i].score);
}
return 0;
}
```
C++版本:
```cpp
#include <iostream>
#include <algorithm> // 用于std::sort
using namespace std;
struct Student {
int id;
float score;
};
int main() {
const int STUDENT_COUNT = 10;
Student students[STUDENT_COUNT];
float sum = 0.0;
float maxScore = 0.0;
float minScore = 100.0;
// 输入学生的成绩
cout << "请输入10名学生的成绩:" << endl;
for (int i = 0; i < STUDENT_COUNT; ++i) {
cout << "学生 #" << i + 1 << " 的成绩:";
cin >> students[i].score;
sum += students[i].score;
if (students[i].score > maxScore) maxScore = students[i].score;
if (students[i].score < minScore) minScore = students[i].score;
}
// 计算平均分
float average = sum / STUDENT_COUNT;
cout << "平均分:" << average << endl;
cout << "最高分:" << maxScore << endl;
cout << "最低分:" << minScore << endl;
// 降序排序学生的成绩
sort(students, students + STUDENT_COUNT, [](const Student &a, const Student &b) {
return a.score > b.score;
});
// 打印排序后的成绩
cout << "降序排序后的成绩:" << endl;
for (int i = 0; i < STUDENT_COUNT; ++i) {
cout << "学生 #" << students[i].id << " 成绩:" << students[i].score << endl;
}
return 0;
}
```