自定义排序结构体数组
#include<bits/stdc++.h>
using namespace std;
struct w
{
int si;
int k1;
int k2;
int k3;
int sum;
}st[310];
bool cmp (const w &x , const w &y)
{
if ( x.sum != y.sum ) return x.sum > y.sum;
else if ( x.k1 != y.k1) return x.k1 > y.k1;
else if (x.si != y.si) return x.si < y.si;
}
int main()
{
int n;
cin>>n;
for (int i = 1 ; i <= n ; i ++)
{
cin>>st[i].k1>>st[i].k2>>st[i].k3;
st[i].si = i;
st[i].sum = st[i].k1 + st[i].k2 + st[i].k3;
}
sort(st+1,st+n+1,cmp);
int maxn = st[1].sum;
for (int i = 1 ; i <= 5 ; i ++)
cout<<st[i].si<<" "<<st[i].sum<<endl;
return 0;
}
同样可以在结构体内写排序方法
#include<bi