a915
輸入說明 :
第一行输入一个正整数n。 接下来n行,第i行有两个个以空格隔开的正整数x[i]和y[i],表示第i个点为(x[i],y[i])。
輸出說明 :
输出n行,第i行表示排序好后第i个点的坐标。
qsort cmp函式也可以來比各種條件的排序
#include<stdio.h>
#include<stdlib.h>
struct Point
{
int x;
int y;
};
int cmp(const void * pa,const void *pb)
{
Point *p1 =(Point *)pa;
Point *p2 =(Point *)pb;
if(p1->x != p2->x)
return p1->x > p2->x;
else
return p1->y > p2->y;
}
Point a[1000];
int main()
{
int N;
int i;
while(scanf("%d",&N)!=EOF)
{
for(i=0;i<N;i++)
scanf("%d%d",&a[i].x,&a[i].y);
qsort(a,N,sizeof(Point),cmp); //先比x在比y大的在前面
for(i=0;i<N;i++)
printf("%d %d\n",a[i].x,a[i].y);
}
return 0;
}