08-B. 最高成绩(静态成员)

08-静态成员与友元
题目描述
学生类定义如下:
class Student {
private:
int id; //学号
int score; //成绩
static int maxscore; //最高分数
static int maxid; //最高分数学生学号
public:
Student(int ti=0, int ts=0)
:id(ti), score(ts)
{}
static void findMax(Student & st); //寻找最高成绩和学号
static int getMaxScore(); //返回最高成绩
static int getMaxID(); //返回最高成绩的学号
};
输入一组学生学号和成绩,用上述静态成员求最高成绩和对应学号

输入
第一行输入n表示有n个学生
接着输入n行,每行包括两个数据,表示学号和成绩

输出
调用静态成员函数输出学号和最高成绩,格式看样例

输入样例
3
1002 68
1023 54
1045 32

1002–68

#include <iostream>
using namespace std;

class student
{
    int id;
    int score;
    static int maxscore;
    static int maxid;
    
public:
    student(int ti=0,int ts=0):id(ti),score(ts){}
    //student():id(0),score(0){}
    //student(int ti,int ts):id(ti),score(ts){}
    static void findmax(student &st);
    
    static int getmaxscore();
    static int getmaxid();
    
    int getid()
    {return id;}
    int getscore()
    {return score;}
};

int student::maxscore=0;
int student::maxid=0;

int student::getmaxscore()
{return maxscore;}
int student::getmaxid()
{return maxid;}

void student::findmax(student &st)//静态成员函数只能使用静态数据成员!
{
    if(st.getscore()>maxscore)
    {
        maxscore=st.getscore();//所以这里要st.getscore() 不可以直接使用
        maxid=st.getid();
    }
}

int main()
{
    int n,id,score;
    cin>>n;
    while(n--)
    {
        cin>>id>>score;
        student a(id,score);
        student::findmax(a);
    }
    cout<<student::getmaxid()<<"--"<<student::getmaxscore()<<endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值