设计一个学生类,包括学号(num)和成绩(score)。建立一个对象数组,内放5个学生的数据,要求:
(1) 用指针指向数组首元素,输出第1、3、5个学生的信息;
(2) 设计一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
#include <iostream>
using namespace std;
class Student
{
public:
Student(int n, float s) : num(n), score(s){};
int max(Student *);
void display();
private:
int num;
float score;
};
void Student::display()
{
cout << num << " " << score << endl;
}
int Student::max( Student *a )
{
float max = a[0].score;
int n = 0;
for ( int i = 1; i < 5; ++i )
{
if ( a[i].score > max )
{
max = a[i].score;
n = i;
}
}
return a[n].num;
}
int main()
{
Student stu[5] = {
Student(1001,89),
Student(1002, 96),
Student(1003, 85),
Student(1004, 93),
Student(1005, 82)
};
Student *a = stu;
for ( int i = 0; i < 5; i+=2 )
{
stu[i].display();
}
cout<< a->max( stu ) << endl;
return 0;
}