c++代码有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 14:23:48 浏览: 66
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
以下是解决该问题的 C++ 代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
struct Student {
string id;
string name;
float score[3];
float average;
};
int main() {
Student students[10];
float sum[3] = {0};
// 输入学生数据
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个学生的学号、姓名、3门课的成绩:" << endl;
cin >> students[i].id >> students[i].name >> students[i].score[0] >> students[i].score[1] >> students[i].score[2];
students[i].average = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3;
sum[0] += students[i].score[0];
sum[1] += students[i].score[1];
sum[2] += students[i].score[2];
}
// 计算平均成绩
float average_score[3];
average_score[0] = sum[0] / 10;
average_score[1] = sum[1] / 10;
average_score[2] = sum[2] / 10;
cout << "3门课的平均成绩为:" << average_score[0] << " " << average_score[1] << " " << average_score[2] << endl;
// 找出平均分数最高的学生
int highest_index = 0;
for (int i = 1; i < 10; i++) {
if (students[i].average > students[highest_index].average) {
highest_index = i;
}
}
cout << "平均成绩最高的学生是:" << endl;
cout << "学号:" << students[highest_index].id << endl;
cout << "姓名:" << students[highest_index].name << endl;
cout << "成绩:" << students[highest_index].score[0] << " " << students[highest_index].score[1] << " " << students[highest_index].score[2] << endl;
cout << "平均分数:" << students[highest_index].average << endl;
return 0;
}
```
运行该程序,输入10个学生的数据后,输出3门课的平均成绩和平均成绩最高的学生的数据。例如,输入的数据如下:
```
001 alice 80 90 70
002 bob 75 85 90
003 charlie 90 85 95
004 david 70 75 80
005 emma 85 90 95
006 frank 80 85 90
007 grace 90 95 80
008 henry 75 80 85
009 ivy 85 95 90
010 jason 80 85 75
```
那么输出的结果如下:
```
3门课的平均成绩为:81.5 86.5 85
平均成绩最高的学生是:
学号:003
姓名:charlie
成绩:90 85 95
平均分数:90
```
阅读全文