5.有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。c++
时间: 2023-12-15 17:02:30 浏览: 76
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
以下是实现上述功能的C++代码:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Student {
int num;
string name;
int score[3];
double average;
};
int main() {
Student stu[10];
double sum[3] = {0}; // 用于计算3门课的总成绩
int highest_index = 0; // 最高分学生在数组中的下标
double highest_score = -1; // 最高分数
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i + 1 << "个学生的学号、姓名、三门课的成绩:" << endl;
cin >> stu[i].num >> stu[i].name >> stu[i].score[0] >> stu[i].score[1] >> stu[i].score[2];
// 计算平均分
stu[i].average = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0;
// 计算3门课的总成绩
sum[0] += stu[i].score[0];
sum[1] += stu[i].score[1];
sum[2] += stu[i].score[2];
// 更新最高分学生的信息
if (stu[i].average > highest_score) {
highest_score = stu[i].average;
highest_index = i;
}
}
// 计算3门课的平均成绩
double avg[3] = {sum[0] / 10.0, sum[1] / 10.0, sum[2] / 10.0};
// 打印3门课的平均成绩
cout << "三门课的平均成绩为:" << avg[0] << " " << avg[1] << " " << avg[2] << endl;
// 打印最高分学生的信息
cout << "最高分学生的信息为:" << endl;
cout << "学号:" << stu[highest_index].num << endl;
cout << "姓名:" << stu[highest_index].name << endl;
cout << "三门课成绩:" << stu[highest_index].score[0] << " " << stu[highest_index].score[1] << " " << stu[highest_index].score[2] << endl;
cout << "平均分数:" << stu[highest_index].average << endl;
return 0;
}
```
在该程序中,我们定义了一个结构体`Student`,包含了学生的学号、姓名和三门课的成绩,并且新增了一个`average`成员变量,用于存储学生的平均分数。在`main`函数中,我们定义了一个包含10个学生信息的数组`stu`,并通过循环输入每个学生的信息,并计算每个学生的平均分数。同时,我们使用一个`sum`数组来记录3门课的总成绩,以便计算平均成绩。我们还定义了`highest_index`和`highest_score`变量,用于记录最高分学生的信息。最后,我们计算3门课的平均成绩,并打印出来;同时,打印出最高分学生的信息。
阅读全文