【任务】设计一个学生类,包括学号(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){}
void display();
int num;
float score;
};
int main()
{Student stud[5]={
Student(186,98.5),Student(187,95.5),Student(188,99.5),
Student(189,100.5),Student(190,93.5)};
Student *p=stud;
cout<<"第1、3、5个学生的信息为:"<<endl;
for(int i=0;i<=2;p=p+2,i++)
p->display();
void max(Student *);
Student *m=&stud[0];
max(m);
return 0;
}
void Student::display()
{
cout<<"学号:"<<num<<" "<<"分数:"<<score<<endl;
}
void max(Student *arr)
{
float max_score=arr[0].score;
int k=0;
for(int i=1;i<5;i++)
if(arr[i].score>max_score)
{
max_score=arr[i].score;k=i;
}
cout<<"5个学生中成绩最高分为:"<<max_score<<" "<<"其学号为"<<arr[k].num<<endl;
}
运行结果