有n(n<10)个学生,每个学生的信息包括:num(学号)、name(姓名)、score[3](3门课的成绩)。要求:①编写函数input,从键盘输入n个学生的数据并计算每个学生的平均分;②编写函数maxAver,求平均分最高的学生并返回,在main函数中输出平均分最高的学生信息。 用c++写一下
时间: 2024-01-22 12:19:12 浏览: 90
编写程序,输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息。学生信息包括:学号、姓名、成绩。
以下是实现输入学生信息、计算平均分和返回平均分最高的学生信息的 C++ 代码:
```
#include <iostream>
#include <string>
using namespace std;
struct Student {
int num;
string name;
float score[3];
float avgScore;
};
void input(Student students[], int n) {
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].num;
cout << "姓名:";
cin >> students[i].name;
cout << "三门课的成绩:";
cin >> students[i].score[0] >> students[i].score[1] >> students[i].score[2];
students[i].avgScore = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3.0;
}
}
Student maxAver(Student students[], int n) {
float maxAverScore = -1;
int maxAverIndex = -1;
for (int i = 0; i < n; i++) {
if (students[i].avgScore > maxAverScore) {
maxAverScore = students[i].avgScore;
maxAverIndex = i;
}
}
return students[maxAverIndex];
}
int main() {
int n;
cout << "请输入学生个数(不大于9):" << endl;
cin >> n;
Student students[n];
input(students, n);
Student maxAverStudent = maxAver(students, n);
cout << "平均分最高的学生信息:" << endl;
cout << "学号:" << maxAverStudent.num << endl;
cout << "姓名:" << maxAverStudent.name << endl;
cout << "平均分:" << maxAverStudent.avgScore << endl;
return 0;
}
```
注意:本代码中使用了结构体来存储学生信息,平均分计算时使用了浮点型。同时,由于输入的学生个数不超过9,因此使用了 C++ 数组来存储学生信息。
阅读全文