用C++建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号及最高成绩
时间: 2023-05-14 13:06:51 浏览: 99
以下是用C语言实现的代码:
#include <stdio.h>
struct student {
int id;
int score;
};
void max(struct student *students, int size) {
int max_score = 0;
int max_id = 0;
for (int i = 0; i < size; i++) {
if (students[i].score > max_score) {
max_score = students[i].score;
max_id = students[i].id;
}
}
printf("最高成绩的学生是:%d,成绩为:%d\n", max_id, max_score);
}
int main() {
struct student students[5] = {
{1, 80},
{2, 90},
{3, 85},
{4, 95},
{5, 88}
};
max(students, 5);
return 0;
}
输出结果为:
最高成绩的学生是:4,成绩为:95
注意:本回答是由AI程序生成,仅供参考,不代表本人立场。
相关问题
用C++建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。按要求编程实现。
首先,让我们创建一个名为`Student`的结构体来存储学生的数据,包括学号和成绩。然后定义一个`findMaxScore`函数,它接受一个指向`Student`对象数组的指针作为参数。在这个函数里,我们会遍历整个数组,找到成绩最高的学生并返回其学号。
```cpp
#include <iostream>
using namespace std;
// 定义学生结构体
struct Student {
int id;
double score;
};
// 函数声明,用于找到数组中成绩最高的学生及其学号
int findMaxScore(Student* students, int size);
int main() {
// 创建包含5个学生的数组
const int numStudents = 5;
Student students[numStudents] = {
{1, 80},
{2, 90},
{3, 75},
{4, 95},
{5, 85}
};
// 调用函数并输出结果
int maxScoreIndex = findMaxScore(students, numStudents);
cout << "The student with the highest score has an ID of: " << students[maxScoreIndex].id << endl;
return 0;
}
// 实现寻找最高分学生学号的函数
int findMaxScore(Student* students, int size) {
int maxIndex = 0; // 初始化最大索引为0
for (int i = 1; i < size; ++i) {
if (students[i].score > students[maxIndex].score) {
maxIndex = i; // 更新最大索引
}
}
return maxIndex; // 返回最高分学生的索引
}
```
这个程序首先定义了`Student`结构体,接着在`main`函数中创建了一个包含5个学生数据的数组。`findMaxScore`函数通过遍历数组,查找最高分数对应的学生索引。最后,`main`函数打印出最高分学生的学号。
建立一个对象数组,内放5个学生的学号和成绩,设立一个函数max,用指向对象的指针做函数参数,在max函数种找出5个学生中成绩最高者,并输出其学号。用C++实现
以下是实现代码:
```cpp
#include <iostream>
using namespace std;
class Student {
int id;
float score;
public:
Student(int i, float s) : id(i), score(s) {}
int getId() { return id; }
float getScore() { return score; }
};
void max(Student *arr[], int size) {
int maxIndex = 0;
for (int i = 1; i < size; i++) {
if (arr[i]->getScore() > arr[maxIndex]->getScore()) {
maxIndex = i;
}
}
cout << "最高分数的学生学号为:" << arr[maxIndex]->getId() << endl;
}
int main() {
Student s1(1001, 89.5);
Student s2(1002, 78.5);
Student s3(1003, 92.0);
Student s4(1004, 85.5);
Student s5(1005, 91.0);
Student *arr[5] = { &s1, &s2, &s3, &s4, &s5 };
max(arr, 5);
return 0;
}
```
这里创建了一个 `Student` 类,包含学生的学号和成绩属性,然后在 `main` 函数中创建了 5 个学生对象,并将它们的指针存储在一个指针数组 `arr` 中。最后调用 `max` 函数,使用指向对象的指针作为参数,在其中遍历整个数组,找到成绩最高的学生,并输出其学号。
阅读全文