建立一个对象数组,内放4个学生的数据(学号 int、成绩 int),设立一个函数max(),用指向对象的指针作函数参数,在max函数中找出4个学生中成绩最高者,并输出其学号和成绩。如有相同最高成绩,按
时间: 2023-04-30 07:04:25 浏览: 56
题目要求我们创建一个对象数组,其中包含4个学生的数据(学号 int、成绩 int),并且定义一个名为max()的函数,该函数带有指向对象的指针作为参数,在max()函数中找到成绩最高的学生中的学号和成绩,然后输出它们。如果有相同的最高成绩,则输出其中任意一个学生的数据。
相关问题
c++ 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数 max,用对象指针做函数参数,在max中找出5个学生中成绩最高者,并 输出其学号。
好的,我可以帮你解决这个问题。
首先,我们需要定义一个学生类 `Student`,其中包含学号和成绩两个成员变量,以及一个获取成绩的成员函数 `getScore()`。代码如下:
```cpp
class Student {
public:
Student(int id, int score) : m_id(id), m_score(score) {}
int getId() const { return m_id; }
int getScore() const { return m_score; }
private:
int m_id;
int m_score;
};
```
接下来,我们可以定义一个对象数组,内放5个学生的数据。代码如下:
```cpp
Student students[5] = {
Student(1001, 90),
Student(1002, 80),
Student(1003, 85),
Student(1004, 95),
Student(1005, 92)
};
```
最后,我们需要定义一个函数 `max`,用对象指针做函数参数,在 `max` 中找出5个学生中成绩最高者,并输出其学号。代码如下:
```cpp
void max(Student *students, int size) {
int maxScore = -1;
int maxId = -1;
for (int i = 0; i < size; i++) {
if (students[i].getScore() > maxScore) {
maxScore = students[i].getScore();
maxId = students[i].getId();
}
}
cout << "最高分学生的学号是:" << maxId << endl;
}
```
最后,我们可以在 `main` 函数中调用 `max` 函数,找出成绩最高的学生。代码如下:
```cpp
int main() {
max(students, 5);
return 0;
}
```
运行结果如下:
```
最高分学生的学号是:1004
```
希望能帮到你!
建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
以下是代码实现:
```C++
#include <iostream>
using namespace std;
class Student {
public:
int id; // 学号
float score; // 成绩
};
void max(Student* students) {
float max_score = students[0].score; // 设初始的最高成绩为第一个学生的成绩
int max_index = 0; // 最高成绩所在学生在数组中的下标
for (int i = 1; i < 5; i++) {
if (students[i].score > max_score) {
max_score = students[i].score;
max_index = i;
}
}
cout << "学号为 " << students[max_index].id << " 的学生成绩最高,成绩为 " << max_score << endl;
}
int main() {
Student students[5] = {{520, 89}, {521, 78}, {522, 92}, {523, 86}, {524, 95}};
max(students);
return 0;
}
```
上述代码创建了一个名为 Student 的类,用来存储学号和成绩,然后创建了一个 max 函数,它的参数是一个指向 Student 对象的指针。在 max 函数中使用了一个 for 循环,找出数组中成绩最高的学生,在函数结束时输出该学生的学号和成绩。最后在 main 函数中创建了一个包含 5 个学生成绩数据的 Student 对象数组,并将其传递给 max 函数。