有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输人 10个学生数据,要求打印出了 门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、了门课成绩、平均分数)。用c加加
时间: 2023-06-20 10:09:47 浏览: 209
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
下面是一个实现该功能的 C++ 代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
struct Student {
string id;
string name;
double score1;
double score2;
double score3;
double average;
};
int main() {
const int N = 10;
Student students[N];
double total1 = 0, total2 = 0, total3 = 0;
// 从键盘输入学生数据
for (int i = 0; i < N; i++) {
cout << "请输入第" << i+1 << "个学生的数据:" << endl;
cin >> students[i].id >> students[i].name >> students[i].score1 >> students[i].score2 >> students[i].score3;
students[i].average = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
total1 += students[i].score1;
total2 += students[i].score2;
total3 += students[i].score3;
}
// 计算平均分数
double average1 = total1 / N;
double average2 = total2 / N;
double average3 = total3 / N;
double average = (average1 + average2 + average3) / 3;
cout << "三门课的平均成绩分别为:" << average1 << ", " << average2 << ", " << average3 << endl;
cout << "总平均成绩为:" << average << endl;
// 找到最高分数的学生
double maxScore = 0;
int maxScoreIndex = -1;
for (int i = 0; i < N; i++) {
if (students[i].average > maxScore) {
maxScore = students[i].average;
maxScoreIndex = i;
}
}
// 打印最高分数的学生的数据
if (maxScoreIndex >= 0) {
cout << "最高分数的学生是:" << endl;
cout << "学号:" << students[maxScoreIndex].id << endl;
cout << "姓名:" << students[maxScoreIndex].name << endl;
cout << "三门课成绩:" << students[maxScoreIndex].score1 << ", "
<< students[maxScoreIndex].score2 << ", " << students[maxScoreIndex].score3 << endl;
cout << "平均分数:" << students[maxScoreIndex].average << endl;
} else {
cout << "无数据" << endl;
}
return 0;
}
```
该程序先定义了一个 `Student` 结构体,用于存储每个学生的数据。然后从键盘输入 10 个学生的数据,并且计算出每个学生的平均分数以及三门课的总平均分数。最后找到最高分数的学生并打印出来。
阅读全文