某学习小组有五个人,每个人的信息包括学号和一门课的成绩。要求重键盘上输入他们的信息,求出该门功课的小组平均成绩,输出最高成绩者的完整信息,分数最高的学生可能不只一个C++
时间: 2025-01-27 10:14:57 浏览: 48
以下是一个用C++编写的程序,可以实现你所描述的功能:
```cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Student {
string id;
double score;
};
int main() {
int n = 5;
vector<Student> students(n);
double totalScore = 0;
double highestScore = 0;
vector<Student> topStudents;
// 输入学生信息
for (int i = 0; i < n; i++) {
cout << "请输入第 " << i+1 << " 个学生的学号: ";
cin >> students[i].id;
cout << "请输入第 " << i+1 << " 个学生的成绩: ";
cin >> students[i].score;
totalScore += students[i].score;
// 检查是否为最高分
if (students[i].score > highestScore) {
highestScore = students[i].score;
topStudents.clear();
topStudents.push_back(students[i]);
} else if (students[i].score == highestScore) {
topStudents.push_back(students[i]);
}
}
// 计算平均分
double averageScore = totalScore / n;
// 输出结果
cout << "\n小组平均成绩: " << averageScore << endl;
cout << "最高成绩: " << highestScore << endl;
cout << "获得最高成绩的学生信息:" << endl;
for (const auto& student : topStudents) {
cout << "学号: " << student.id << ", 成绩: " << student.score << endl;
}
return 0;
}
```
这个程序首先定义了一个`Student`结构体来存储学生的学号和成绩。然后在`main`函数中,我们创建了一个包含5个学生的向量。
程序通过循环从键盘输入每个学生的信息,并同时计算总分。在输入过程中,程序还检查每个成绩是否高于当前最高分,如果是,则更新最高分并清空最高分学生列表;如果等于当前最高分,则将学生添加到最高分学生列表中。
输入完成后,程序计算平均分并输出结果。最后,程序输出所有获得最高分的学生信息。
这个程序能够处理多个学生获得最高分的情况,并正确输出所有相关学生的信息。
阅读全文
相关推荐













