建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数,首部为:void max(Student *arr),用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号和成绩。请用构造函数实现初始化。
时间: 2024-10-21 18:07:06 浏览: 40
首先,我们创建一个名为`Student`的结构体,包含学号`id`和成绩`score`两个成员变量。然后,我们将提供一个构造函数用于初始化学生的数据。接着,定义一个`max`函数,它接收一个指向`Student`类型的指针数组作为参数。
```cpp
#include <iostream>
// 定义 Student 结构体,包含学号和成绩
struct Student {
int id;
int score;
// 构造函数用于初始化学生数据
Student(int _id, int _score) : id(_id), score(_score) {}
};
// 函数声明:寻找并输出成绩最高的学生信息
void max(Student* arr, int size);
int main() {
// 创建一个大小为5的 Student 对象数组
const int NUM_STUDENTS = 5;
Student students[NUM_STUDENTS] = {
{1, 80},
{2, 90},
{3, 75},
{4, 95},
{5, 85}
};
// 调用 max 函数找到并输出成绩最高者的信息
max(students, NUM_STUDENTS);
return 0;
}
// 实现 max 函数
void max(Student* arr, int size) {
int maxIndex = 0; // 初始化最高分索引
for (int i = 1; i < size; ++i) { // 避免比较自身
if (arr[i].score > arr[maxIndex].score) {
maxIndex = i;
}
}
std::cout << "成绩最高者:学号 " << arr[maxIndex].id << ", 成绩 " << arr[maxIndex].score << std::endl;
}
```
在这个程序中,`main`函数里创建了一个包含5个学生数据的对象数组,并调用`max`函数找出其中成绩最高者的信息。`max`函数通过遍历整个数组来找到最大值对应的索引,最后输出这个学生的信息。
阅读全文