主页 | 讨论版 | 问题 | 名次 | 状态 | 统计 |
问题 E: C++习题 对象数组求最大值
时间限制: 1 Sec 内存限制: 128 MB提交: 1047 解决: 755
[ 提交][ 状态][ 讨论版]
题目描述
建立一个对象数组,内放n(<10)个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出n个学生中成绩最高者,并输出其学号。
输入
n和n个学生的学号、成绩
输出
成绩最高者的学号和成绩
样例输入
5
101 78.5
102 85.5
103 98.5
104 100.0
105 95.5
样例输出
104 100.00
解题代码:
#include <iostream> #include <iomanip> using namespace std; class Student { public: Student(int n=0,double s=0):num(n),score(s) {} int get_num(); void input(); double get_score(); void display();
private: int num; //学号 double score; //成绩 };
int Student::get_num() { return num; } double Student::get_score() { return score; } void max(Student *arr,int n) { double max=arr[0].get_score(); int i,no; for(i=0; i<n; ++i) { if(arr[i].get_score()>max) no=i; } no--; arr[no].display(); } void Student::input() { double n,s; cin>>n>>s; num=n; score=s; } void Student::display() { cout<<num<<" "<<score<<endl; }
int main()
{ void max(Student* ,int); const int NUM=10; Student stud[NUM]; int n,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); return 0; }