题目描述 有若干个学生,每个学生的数据包括学号、姓名、三门课成绩及平均成绩。 从键盘输入一个正整数1<=n<=100),接着再输入n 行数据,分别代表n个学生数据(学号、姓名、三门课成绩,不包括平均成绩)。 输出平均成绩最高的同学的信息 (学号、姓名、三门课成绩、平均成绩) 。(平均成绩均不相等) 输入 共n+1行,第一行输入整数n,表示学生总数 接下来的n行录入n名学生的数据 输出 平均成绩最高的同学的信息 (学号、姓名、三门课成绩、平均成绩) ,其中平均成绩保留小数点后两位。 样例输入 5 1101 auhj 78.6 22.2 65.7 1167 bbsj 42.6 83.0 33.2 4628 jouy 53.9 17.7 26.7 8175 ubge 77.7 67.6 61.1 8977 obcw 49.9 15.3 72.0 样例输出 8175 ubge 77.7 67.6 61.1 68.80 c++代码:
时间: 2024-04-20 20:22:48 浏览: 106
你提供了一个具体的题目描述和样例输入输出,还附带了一个C++代码。很抱歉,我之前的回答中没有注意到你想使用C++来解决这个问题。
以下是你提供的C++代码:
```cpp
#include<iostream>
#include<iomanip>
using namespace std;
struct Student {
int id;
string name;
double score1;
double score2;
double score3;
double average;
};
int main() {
int n;
cin >> n;
Student students[n];
for (int i = 0; i < n; i++) {
cin >> students[i].id >> students[i].name >> students[i].score1 >> students[i].score2 >> students[i].score3;
students[i].average = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
}
int maxIndex = 0;
for (int i = 1; i < n; i++) {
if (students[i].average > students[maxIndex].average) {
maxIndex = i;
}
}
cout << students[maxIndex].id << " " << students[maxIndex].name << " " << students[maxIndex].score1 << " "
<< students[maxIndex].score2 << " " << students[maxIndex].score3 << " "
<< fixed << setprecision(2) << students[maxIndex].average << endl;
return 0;
}
```
该代码使用结构体Student来存储学生的数据,并使用一个循环来输入每个学生的数据。然后,通过计算平均成绩找到平均成绩最高的学生,并输出该学生的信息。
如果你有任何问题或需要进一步的解释,请随时告诉我。
阅读全文