有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求: 1.打印出3门课的总平均成绩(结果保留两位小数) 2.打印平均分最高分学生的数据(包括学号、姓名、3门课成绩)
时间: 2023-12-15 19:23:14 浏览: 48
以下是一个用 C++ 实现的解决方案:
```c++
#include <iostream>
#include <iomanip>
using namespace std;
struct Student {
string id;
string name;
double grade[3];
};
int main() {
int n;
cout << "请输入学生数量:";
cin >> n;
Student stu[n];
// 输入学生数据
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的学号、姓名、3门课的成绩:";
cin >> stu[i].id >> stu[i].name >> stu[i].grade[0] >> stu[i].grade[1] >> stu[i].grade[2];
}
// 计算总平均分
double totalAvg = 0;
for (int i = 0; i < n; i++) {
double sum = 0;
for (int j = 0; j < 3; j++) {
sum += stu[i].grade[j];
}
totalAvg += sum / 3;
}
totalAvg /= n;
cout << "3门课的总平均成绩为:" << fixed << setprecision(2) << totalAvg << endl;
// 找到平均分最高的学生
int highestAvgIndex = 0;
double highestAvg = 0;
for (int i = 0; i < n; i++) {
double sum = 0;
for (int j = 0; j < 3; j++) {
sum += stu[i].grade[j];
}
double avg = sum / 3;
if (avg > highestAvg) {
highestAvg = avg;
highestAvgIndex = i;
}
}
cout << "平均分最高的学生的数据为:" << endl;
cout << "学号:" << stu[highestAvgIndex].id << endl;
cout << "姓名:" << stu[highestAvgIndex].name << endl;
cout << "成绩:" << stu[highestAvgIndex].grade[0] << " " << stu[highestAvgIndex].grade[1] << " " << stu[highestAvgIndex].grade[2] << endl;
return 0;
}
```
以上代码中,我们使用了一个 `Student` 结构体来保存每个学生的数据。首先输入学生数据,然后分别计算总平均分和平均分最高的学生。最后输出结果。
阅读全文