您的位置:首页 > 其它

6.15 喜刷刷 1 oj 1 对象数组中的最大值

2015-06-15 13:49 489 查看
主页讨论版问题名次状态统计
系统测试进行中,遇到问题,请联系:18865513850188655502391886551393018865516568

问题E:C++习题对象数组求最大值

时间限制:1Sec内存限制:128MB

提交:1047解决:755

[提交][状态][讨论版]

题目描述

建立一个对象数组,内放n(<10)个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出n个学生中成绩最高者,并输出其学号。

输入

n和n个学生的学号、成绩

输出

成绩最高者的学号和成绩

样例输入

5
10178.5
10285.5
10398.5
104100.0
10595.5

样例输出

104100.00


解题代码:

#include<iostream>
#include<iomanip>
usingnamespacestd;
classStudent
{
public:
Student(intn=0,doubles=0):num(n),score(s){}
intget_num();
voidinput();
doubleget_score();
voiddisplay();
private:
intnum;//学号
doublescore;//成绩
};
intStudent::get_num()
{
returnnum;
}
doubleStudent::get_score()
{
returnscore;
}
voidmax(Student*arr,intn)
{
doublemax=arr[0].get_score();
inti,no;
for(i=0;i<n;++i)
{
if(arr[i].get_score()>max)
no=i;
}
no--;
arr[no].display();
}
voidStudent::input()
{
doublen,s;
cin>>n>>s;
num=n;
score=s;
}
voidStudent::display()
{
cout<<num<<""<<score<<endl;
}
intmain()
{
voidmax(Student*,int);
constintNUM=10;
Studentstud[NUM];
intn,i;
cin>>n;
for(i=0;i<n;i++)
stud[i].input();
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
Student*p=&stud[0];
max(p,n);
return0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: