直接调用sort函数即可,水题,学会了多个条件下的排序.
#include<stdio.h>
#include<algorithm>
//sort函数的调用,学会了有多个排序条件的排序
struct node
{
int power,magic,speed,mark;
}people[1000];
bool cmp(node x,node y)
{
if(x.power!=y.power)
return x.power>y.power;
else if(x.magic!=y.magic)
return x.magic>y.magic;
else
return x.speed<y.speed;
}
using namespace std;
int main()
{
int N,i,j,k;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d%d%d",&people[i].power,&people[i].magic,&people[i].speed);
people[i].mark=i;
}
sort(people+1,people+1+N,cmp);
for(i=1;i<=N;i++)
printf("%d\n",people[i].mark);
return 0;
}