c++有五个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及平均分最高学生数据
时间: 2024-12-13 13:24:09 浏览: 61
在 C++ 中,你可以通过定义一个结构体(struct)来表示学生的信息,并创建一个动态数组存储这五位学生。然后,你可以编写一个循环来读取用户的输入,并计算每位学生的平均成绩。最后,遍历整个数组找出平均成绩最高的学生。
下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义学生信息结构
struct Student {
int studentID;
string className;
string name;
double score[3]; // 保存三门课程的成绩
};
int main() {
const int numStudents = 5; // 学生总数
Student students[numStudents];
// 输入学生信息
for (int i = 0; i < numStudents; ++i) {
cout << "请输入第" << i + 1 << "名学生信息:\n";
cin >> students[i].studentID >> students[i].className >> students[i].name;
for (int j = 0; j < 3; ++j) {
cout << "请输入第" << (j + 1) << "门课程成绩: ";
cin >> students[i].score[j];
}
}
// 计算并打印平均成绩
for (int i = 0; i < numStudents; ++i) {
double avgScore = 0;
for (double score : students[i].score) {
avgScore += score;
}
avgScore /= 3;
cout << "学生 " << students[i].studentID << " 的平均成绩: " << avgScore << endl;
}
// 找到平均分最高的学生
double maxAvg = students[0].avgScore; // 假设第一个学生作为初始最大值
int maxIndex = 0;
for (int i = 1; i < numStudents; ++i) {
if (students[i].avgScore > maxAvg) {
maxAvg = students[i].avgScore;
maxIndex = i;
}
}
cout << "平均分最高的学生 (" << students[maxIndex].studentID << ") 数据: \n";
cout << "学号: " << students[maxIndex].studentID << "\n";
cout << "班级: " << students[maxIndex].className << "\n";
cout << "姓名: " << students[maxIndex].name << "\n";
cout << "平均成绩: " << maxAvg << endl;
return 0;
}
阅读全文