#include <iostream>
#include <algorithm>
const int S=51000;
using namespace std;
struct TT
{
int id,v1,v2;
}f[S];
bool cmp1(const TT &a, const TT &b)//按照结构体元素v1进行排序
{
return (a.v1>b.v1);
}
bool cmp2(const TT &a, const TT &b)//按照结构体元素v2进行排序
{
return (a.v2>b.v2);
}
int main()
{
int n,i;
cin>>n;
for (i=0;i<n;i++)//对结构体赋值
{
cin>>f[i].v1>>f[i].v2;
f[i].id=i+1;
}
cout<<endl;
sort(f,f+n,cmp1);//调用函数cmp1排序
for(i=0;i<n;i++)//输出排序后的结果
cout<<f[i].v1<<" "<<f[i].v2<<endl;
cout<<endl;
sort(f,f+n,cmp2);//调用函数cmp2排序
for(i=0;i<n;i++)//输出排序后的结果
cout<<f[i].v1<<" "<<f[i].v2<<endl;
cout<<endl;
return 0;
}
运行结果示例