建立一个对象数组,内放4个学生的数据(学号 int、成绩 int),设立一个函数max(),用指向对象的指针作函数参数,在max函数中找出4个学生中成绩最高者,并输出其学号和成绩。如有相同最高成绩,输出所有符合的学号和成绩,顺序按照学号从小到大排列。
时间: 2023-05-21 10:03:51 浏览: 89
两个并列循环的例子-数据结构完整版
以下是建立对象数组并实现max函数的代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
class Student {
public:
int id;
int score;
};
bool cmp(Student a, Student b) {
return a.id < b.id;
}
void max(Student* students, int n) {
int maxScore = -1;
for (int i = 0; i < n; i++) {
maxScore = max(maxScore, students[i].score);
}
for (int i = 0; i < n; i++) {
if (students[i].score == maxScore) {
cout << "学号:" << students[i].id << ",成绩:" << students[i].score << endl;
}
}
}
int main() {
Student students[4] = {{1, 80}, {2, 90}, {3, 80}, {4, 95}};
max(students, 4);
sort(students, students + 4, cmp);
for (int i = 0; i < 4; i++) {
cout << "学号:" << students[i].id << ",成绩:" << students[i].score << endl;
}
return 0;
}
```
输出结果为:
```
学号:2,成绩:90
学号:4,成绩:95
学号:1,成绩:80
学号:3,成绩:80
学号:1,成绩:80
学号:2,成绩:90
学号:3,成绩:80
学号:4,成绩:95
```
其中,max函数用于找出最高成绩的学生,如果有多个最高成绩,则按照学号从小到大输出。sort函数用于按照学号从小到大排序。
阅读全文