21.试编程实现:一包含5名自定义学生信息(姓名,学号,三门课程成绩,平均分)的结构体数组,通过自定义两数 Ave ()求得每位学生的平均成绩,并在主两数中按平均分从高到低依次输出学生信息
时间: 2023-06-14 13:03:31 浏览: 111
简单的学生成绩管理系统
5星 · 资源好评率100%
下面是一个 C++ 的实现:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct Student {
string name;
string id;
double score[3];
double avgScore;
};
double Ave(double score1, double score2, double score3) {
return (score1 + score2 + score3) / 3.0;
}
bool cmp(const Student& s1, const Student& s2) {
return s1.avgScore > s2.avgScore;
}
int main() {
Student students[5] = {
{"Alice", "001", {80.0, 90.0, 85.0}},
{"Bob", "002", {90.0, 65.0, 70.0}},
{"Charlie", "003", {75.0, 80.0, 80.0}},
{"David", "004", {85.0, 75.0, 90.0}},
{"Eve", "005", {95.0, 85.0, 90.0}},
};
for (int i = 0; i < 5; i++) {
students[i].avgScore = Ave(students[i].score[0], students[i].score[1], students[i].score[2]);
}
sort(students, students + 5, cmp);
for (int i = 0; i < 5; i++) {
cout << "Name: " << students[i].name << endl;
cout << "ID: " << students[i].id << endl;
cout << "Average Score: " << students[i].avgScore << endl;
cout << endl;
}
return 0;
}
```
这个程序定义了一个 `Student` 结构体,包含学生的姓名、学号、三门课程成绩和平均分。使用一个自定义的 `Ave` 函数来计算平均分。然后使用 `sort` 函数按照平均分从高到低对结构体数组进行排序。最后按照排序后的顺序输出学生信息。
阅读全文