C++输人10个学生5门课的成绩,能够按任意一门课程的成绩,对学生信息进行排序;
时间: 2024-02-27 22:57:56 浏览: 152
可以使用结构体来存储学生信息和成绩,然后使用STL库中的sort()函数对结构体数组进行排序。
以下是示例代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct Student {
string name;
int scores[5];
double average;
};
bool cmp(Student a, Student b) {
// 根据第一门课程成绩进行排序
return a.scores[0] > b.scores[0];
}
int main() {
const int N = 10, M = 5;
Student students[N];
for (int i = 0; i < N; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "姓名:";
cin >> students[i].name;
cout << "五门课程成绩:";
for (int j = 0; j < M; j++) {
cin >> students[i].scores[j];
}
students[i].average = accumulate(students[i].scores, students[i].scores + M, 0) / (double)M;
}
// 根据第一门课程成绩进行排序
sort(students, students + N, cmp);
// 输出排序后的结果
for (int i = 0; i < N; i++) {
cout << students[i].name << " ";
for (int j = 0; j < M; j++) {
cout << students[i].scores[j] << " ";
}
cout << "平均分:" << students[i].average << endl;
}
return 0;
}
```
注:以上代码仅是示例代码,实际使用时需要根据具体需求进行修改。
阅读全文