其他分享
首页 > 其他分享> > [2007年NOIP普及组] 奖学金

[2007年NOIP普及组] 奖学金

作者:互联网

1.总分高的在前面,2.总分相同,语文成绩高的在前面,3.总分,语文成绩相同,学号小的在前面

#include<cstdio>

#include<iostream>

#include<algorithm>

using namespace std;

struct node//定义结构体

{

       int num;

       int ch,ma,en,s;

};

node a[501];

bool cmp(node x,node y)

{

       if(x.s>y.s) return 1;

       else if(x.s==y.s)//成绩相等时

       {

              if(x.ch>y.ch) return 1;//根据语文成绩

              else if(x.ch<y.ch) return 0;

              else //语文成绩相等时

              {

                     if(x.num<y.num) return 1;//根据学号

                     else return 0;

              }

       }

       else return 0;

}

int main()

{

       int n;

       cin>>n;

       for(int i=1;i<=n;i++)

       {

              cin>>a[i].ch>>a[i].ma>>a[i].en;

              a[i].num=i;//位置赋给学号

              a[i].s=a[i].ch+a[i].ma+a[i].en;//总分

       }

       sort(a+1,a+n+1,cmp);//排序

       for(int i=1;i<=5;i++)//前五名

       {

              cout<<a[i].num<<" "<<a[i].s<<endl; 

       }

       return 0;

}

标签:node,ch,return,NOIP,int,else,2007,奖学金,总分
来源: https://www.cnblogs.com/zjtofficial/p/16583112.html