假设学生的基本信息包括学号,姓名,三门课程成绩以及个人平均成绩,输入n个 学生的成绩信息,计算并输出平均分最高的学生信息
时间: 2023-12-17 12:02:56 浏览: 405
好的,这道题需要使用结构体来存储学生的信息,然后依次输入每个学生的信息,计算平均分,比较平均分大小,最后输出平均分最高的学生信息。
以下是一份 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
struct Student {
int id; // 学号
string name; // 姓名
float score1; // 第一门成绩
float score2; // 第二门成绩
float score3; // 第三门成绩
float avgScore; // 平均成绩
};
int main() {
int n;
cout << "请输入学生数目:";
cin >> n;
Student stu[n];
float maxAvgScore = 0;
// 输入学生信息
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> stu[i].id;
cout << "姓名:";
cin >> stu[i].name;
cout << "第一门成绩:";
cin >> stu[i].score1;
cout << "第二门成绩:";
cin >> stu[i].score2;
cout << "第三门成绩:";
cin >> stu[i].score3;
// 计算平均成绩
stu[i].avgScore = (stu[i].score1 + stu[i].score2 + stu[i].score3) / 3;
// 比较平均成绩,更新最高平均成绩和学生信息
if (stu[i].avgScore > maxAvgScore) {
maxAvgScore = stu[i].avgScore;
}
}
// 输出平均成绩最高的学生信息
for (int i = 0; i < n; i++) {
if (stu[i].avgScore == maxAvgScore) {
cout << "平均成绩最高的学生信息:" << endl;
cout << "学号:" << stu[i].id << endl;
cout << "姓名:" << stu[i].name << endl;
cout << "第一门成绩:" << stu[i].score1 << endl;
cout << "第二门成绩:" << stu[i].score2 << endl;
cout << "第三门成绩:" << stu[i].score3 << endl;
cout << "平均成绩:" << stu[i].avgScore << endl;
break;
}
}
return 0;
}
```
注意:在输入学生数目之后,我们使用变长数组 `Student stu[n]` 来存储学生信息。如果你的编译器不支持变长数组,可以使用动态内存分配。
阅读全文