当前位置: 代码迷 >> 综合 >> 好题 cmp可以这么用????--P1093 [NOIP2007 普及组] 奖学金 2021.10.8
  详细解决方案

好题 cmp可以这么用????--P1093 [NOIP2007 普及组] 奖学金 2021.10.8

热度:152   发布时间:2023-11-22 03:50:26.0
#include<iostream>
#include<algorithm>
using namespace std;
struct stu
{int num;//编号int c,m,e; int sum;
}student[310];
bool cmp(stu a,stu b)
{if(a.sum>b.sum) return 1;else if(a.sum<b.sum) return 0;else{if(a.c>b.c) return 1;else if(a.c<b.c) return 0;else{if(a.num>b.num) return 0;else return 1;}}
}
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){student[i].num=i;//录入编号cin>>student[i].c>>student[i].m>>student[i].e;//输入student[i].sum=student[i].c+student[i].m+student[i].e;//计算总分}sort(student+1,student+1+n,cmp);for(int i=1;i<=5;i++)cout<<student[i].num<<' '<<student[i].sum<<endl;return 0;
}

不是这题有多难,主要看cmp 函数的书写形式,开眼界了!