用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

根据成绩排序,成绩相同的根据名字排

2017-08-03 作者:云代码会员举报

[c++]代码库

#include<iostream>
#include<string>
using namespace std;
class Student
{
private:
    string name;
    int score;
public:
    Student()
    {
        name="NULL";
        score=0;
    }
    void setStudent(string n,int s)
    {
        name=n;
        score=s;
    }
    int operator>(Student &s)
    {
        if(score>s.score)
            return 1;
        else if((score==s.score)&&(name<s.name))
            return 1;
        else
            return 0;
    }
    friend ostream& operator<<(ostream &,Student &);
};
ostream& operator<<(ostream &os,Student &s)
{
    os<<s.score<<" "<<s.name;
    return os;
}
int main()
{
    int cases;
    string name;
    int score;
    cin>>cases;
    Student students[cases], temp;
    for (int i = 0; i < cases; i++)
    {
       cin>>name>>score;
       students[i].setStudent(name, score);
    }
    for (int i = 0; i < cases; i++)
    {
        for (int j = 0; j < cases - i - 1; j++)
        {
            if (!(students[j] > students[j + 1]))
            {
                temp = students[j];
                students[j] = students[j + 1];
                students[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < cases; i++)
        cout<<students[i]<<endl;
    return 0;
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。