编写一个函数print,使用一个包含学生信息的结构体数组,实现按三门功课(语文、数学、英语)的总成绩降序输出。该数组有5个学生数据,每个学生有学号、姓名、三门功课成绩。要求主函数实现输入5个学生数据。
时间: 2025-06-09 07:01:44 浏览: 21
在C++语言中,你可以创建一个名为`Student`的结构体来存储学生的相关信息,然后定义一个`printStudents`函数按照总成绩从高到低排序。以下是简单的示例代码:
```cpp
#include <iostream>
#include <algorithm> // 需要头文件来进行排序操作
// 定义学生结构体
struct Student {
int id;
std::string name;
int chinese, math, english; // 分别表示语文、数学和英语的成绩
};
// 按照总成绩计算并返回一个整数比较键
bool compareTotalScore(Student a, Student b) {
return (a.chinese + a.math + a.english) > (b.chinese + b.math + b.english);
}
// 打印学生信息的函数
void printStudents(Student students[], int size) {
std::sort(students, students + size, compareTotalScore); // 使用STL的sort函数降序排列
for (int i = 0; i < size; ++i) {
std::cout << "学号: " << students[i].id << ", 姓名: " << students[i].name
<< ", 总分: " << students[i].chinese + students[i].math + students[i].english << std::endl;
}
}
// 主函数,输入学生数据并调用打印函数
int main() {
const int num_students = 5;
Student students[num_students];
// 输入学生数据
for (int i = 0; i < num_students; ++i) {
std::cout << "请输入第" << i+1 << "位学生的数据 (学号, 姓名, 语文, 数学, 英语): ";
std::cin >> students[i].id >> students[i].name >> students[i].chinese >> students[i].math >> students[i].english;
}
// 调用打印函数
printStudents(students, num_students);
return 0;
}
```
阅读全文