用C++,打出下面题目。有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 08:22:40 浏览: 71
以下是用C++实现的程序:
```cpp
#include <iostream>
#include <string>
using namespace std;
struct Student {
int id;
string name;
int scores[3];
float average;
};
int main() {
const int num_students = 10;
Student students[num_students];
// 输入学生数据
for (int i = 0; i < num_students; i++) {
cout << "请输入第" << i+1 << "个学生的学号、姓名和3门课的成绩(用空格隔开):" << endl;
cin >> students[i].id >> students[i].name;
for (int j = 0; j < 3; j++) {
cin >> students[i].scores[j];
}
students[i].average = (students[i].scores[0] + students[i].scores[1] + students[i].scores[2]) / 3.0;
}
// 计算3门课总平均成绩
float total_average = 0.0;
for (int i = 0; i < num_students; i++) {
total_average += students[i].average;
}
total_average /= num_students;
cout << "3门课总平均成绩为:" << total_average << endl;
// 查找最高分的学生
int max_index = 0;
float max_score = students[0].average;
for (int i = 1; i < num_students; i++) {
if (students[i].average > max_score) {
max_index = i;
max_score = students[i].average;
}
}
// 输出最高分的学生的数据
cout << "最高分的学生的数据为:" << endl;
cout << "学号:" << students[max_index].id << endl;
cout << "姓名:" << students[max_index].name << endl;
cout << "3门课成绩:" << students[max_index].scores[0] << " " << students[max_index].scores[1] << " " << students[max_index].scores[2] << endl;
cout << "平均分数:" << students[max_index].average << endl;
return 0;
}
```
程序中使用了一个结构体 `Student` 来存储每个学生的数据,包括学号、姓名、3门课的成绩和平均分数。首先通过循环输入每个学生的数据,并计算3门课的平均分数。然后计算3门课总平均成绩,并在另一个循环中查找最高分的学生,最后输出该学生的数据。
阅读全文