有3个学生,每个学生的数据包括学号、3门课程的成绩,从键盘输入3个学生数据,要求输出3门课程平均分,以及平均分最高的学生的数据(包括学号、3门课程成绩、平均分数)。 【输入形式】输入3个学生的信息,分别包括学号、3门课成绩(数据之间以空格区分,学号用整数类型表示,成绩用double类型保存) 【输出形式】3门课总平均分<回车>最高分学生数据信息,包括学号、3门课成绩、平均分数,数据之间空格分隔(注:保留2位小数) 【样例输入】 1 82 61 71 2 58 61 62 3 89 73 95 【样例输出】 75.20 3 89.00 73.00 95.00 85.67
时间: 2023-06-16 22:07:38 浏览: 91
下面是一个可能的解法(使用C++语言):
```cpp
#include <iostream>
#include <iomanip> // 用于控制输出格式
using namespace std;
struct Student {
int id;
double grade[3];
};
int main() {
Student stu[3]; // 存储3个学生的信息
double avg[3] = {0}; // 3门课程的平均分
double max_avg = 0; // 最高平均分
int max_id; // 平均分最高的学生的学号
// 输入3个学生的信息
for (int i = 0; i < 3; i++) {
cin >> stu[i].id;
for (int j = 0; j < 3; j++) {
cin >> stu[i].grade[j];
avg[j] += stu[i].grade[j]; // 累加每门课程的总分
}
}
// 计算每门课程的平均分,并找出平均分最高的学生
for (int i = 0; i < 3; i++) {
avg[i] /= 3; // 计算平均分
if (avg[i] > max_avg) { // 更新最高平均分和学生学号
max_avg = avg[i];
max_id = stu[i].id;
}
}
// 输出结果
cout << fixed << setprecision(2); // 设置输出格式,保留2位小数
cout << avg[0] << " " << avg[1] << " " << avg[2] << endl; // 输出3门课程的平均分
cout << max_id << " ";
for (int i = 0; i < 3; i++) {
cout << stu[max_id - 1].grade[i] << " "; // 输出平均分最高的学生的成绩
}
cout << max_avg << endl; // 输出平均分最高的学生的平均分
return 0;
}
```
输入样例:
```
1 82 61 71
2 58 61 62
3 89 73 95
```
输出样例:
```
75.20 65.00 76.00
3 89.00 73.00 95.00 85.67
```
阅读全文