建立一个对象数组,内放 5 个学生的数据(学号、成绩),设立一个函数 max,用指向对象的指针作函数参
数,在 max 函数中找出 5 个学生中成绩最高者,并输出其学号。
代码没有报错,但是输出的并不是成绩最高者的学号,请问这是哪里出问题了,感谢回答。
#include<iostream>
using namespace std;
class Student
{
public:
Student(int n,float s):m_num(n),m_score(s){}
void max(Student* arr[]);
private:
int m_num;
float m_score;
};
void Student::max(Student* arr[])
{
int len = sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<len;i++)
{
if(arr[i]->m_score > arr[0]->m_score)
{
arr[0]->m_score = arr[i]->m_score;
arr[0]->m_num = arr[i]->m_num;
}
}
cout<<"成绩最高者的学号为:"<<arr[0]->m_num<<endl;
}
int main()
{
Student stud(10,45);
Student* arr[] = {new Student(12, 78.5), new Student(21, 85), new Student(41, 92.5), new Student(42, 88), new Student(53, 95)};
stud.max(arr);
return 0;
}