建立一个对象数组,内存放10个学生的数据,建立一个函数max,用指向对象的指针做函数参数,在max函数中找出10个学生中成绩最高者,并输出其学号。
时间: 2023-05-23 11:02:44 浏览: 48
可以这样实现:
```
#include <iostream>
using namespace std;
class Student {
public:
string id;
float score;
};
void max(Student* students, int len) {
int maxIndex = 0;
for (int i = 1; i < len; i++) {
if (students[i].score > students[maxIndex].score) {
maxIndex = i;
}
}
cout << "最高分学生的学号为:" << students[maxIndex].id << endl;
}
int main() {
Student students[10];
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个学生的学号和成绩:";
cin >> students[i].id >> students[i].score;
}
max(students, 10);
return 0;
}
```
使用对象数组存储10个学生的信息,max函数接收一个指向Student对象的指针以及数组长度,遍历整个数组,找出成绩最高的学生,并输出其学号。在main函数中输入学生的信息,并调用max函数进行处理。
相关问题
建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号及最高成绩。
好的,以下是用中文回复:
首先,我们需要定义一个学生类,包含学号和成绩两个属性。然后,我们可以创建一个包含5个学生对象的数组。接下来,我们需要编写一个名为max的函数,该函数接受一个指向学生对象的指针数组作为参数。在max函数中,我们可以遍历数组,找到成绩最高的学生,并输出其学号和最高成绩。
具体实现可以参考以下代码:
```c++
#include <iostream>
using namespace std;
class Student {
public:
int id;
int score;
};
void max(Student* students[]) {
int maxScore = ;
int maxIndex = ;
for (int i = ; i < 5; i++) {
if (students[i]->score > maxScore) {
maxScore = students[i]->score;
maxIndex = i;
}
}
cout << "最高成绩学生的学号为:" << students[maxIndex]->id << endl;
cout << "最高成绩为:" << maxScore << endl;
}
int main() {
Student s1 = { 1, 80 };
Student s2 = { 2, 90 };
Student s3 = { 3, 70 };
Student s4 = { 4, 85 };
Student s5 = { 5, 95 };
Student* students[5] = { &s1, &s2, &s3, &s4, &s5 };
max(students);
return ;
}
```
在上面的代码中,我们定义了一个名为Student的类,包含了学号和成绩两个属性。然后,我们创建了5个学生对象,并将它们存储在一个指向学生对象的指针数组中。最后,我们调用了max函数,并将指针数组作为参数传递给它。在max函数中,我们遍历了数组,找到了成绩最高的学生,并输出了其学号和最高成绩。
建立一个对象数组,内放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 函数。