c++有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 22:47:13 浏览: 86
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
可以使用结构体来表示每个学生的信息,然后使用数组来存储10个学生的信息。以下是一个实现的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Student {
string id; // 学号
string name; // 姓名
double score1; // 第一门课成绩
double score2; // 第二门课成绩
double score3; // 第三门课成绩
double avg; // 平均分
};
int main() {
Student students[10];
double sum1 = 0, sum2 = 0, sum3 = 0;
double max_avg = 0;
int max_index = 0;
// 输入学生信息
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].id;
cout << "姓名:";
cin >> students[i].name;
cout << "第一门课成绩:";
cin >> students[i].score1;
cout << "第二门课成绩:";
cin >> students[i].score2;
cout << "第三门课成绩:";
cin >> students[i].score3;
// 计算平均分
students[i].avg = (students[i].score1 + students[i].score2 + students[i].score3) / 3.0;
// 更新总成绩
sum1 += students[i].score1;
sum2 += students[i].score2;
sum3 += students[i].score3;
// 更新最高平均分学生的信息
if (students[i].avg > max_avg) {
max_avg = students[i].avg;
max_index = i;
}
}
// 打印平均成绩
double avg1 = sum1 / 10.0;
double avg2 = sum2 / 10.0;
double avg3 = sum3 / 10.0;
cout << "第一门课的平均成绩:" << avg1 << endl;
cout << "第二门课的平均成绩:" << avg2 << endl;
cout << "第三门课的平均成绩:" << avg3 << endl;
// 打印平均分最高的学生的信息
cout << "平均分最高的学生信息:" << endl;
cout << "学号:" << students[max_index].id << endl;
cout << "姓名:" << students[max_index].name << endl;
cout << "第一门课成绩:" << students[max_index].score1 << endl;
cout << "第二门课成绩:" << students[max_index].score2 << endl;
cout << "第三门课成绩:" << students[max_index].score3 << endl;
cout << "平均分:" << students[max_index].avg << endl;
return 0;
}
```
注意,上述代码中使用了一个 `Student` 结构体来表示学生的信息,其中包含了学号、姓名、三门课的成绩以及平均分。在输入学生信息时,需要计算每个学生的平均分,并且更新总成绩和最高平均分学生的信息。在打印平均成绩和平均分最高的学生信息时,可以直接使用之前计算的值。
阅读全文