ZZULIOJ 1183: 平面點排序(一)(結構體專題)
阿新 • • 發佈:2019-01-06
題目描述平面上有n個點,座標均為整數。請按與座標原點(0,0)距離的遠近將所有點排序輸出。可以自己寫排序函式,也可以用qsort庫函式排序。
輸入輸入有兩行,第一行是整數n(1<=n<=10),接下來有n行,每行一對整數(每對整數對應一個點)。
輸出輸出排序後的所有點,格式為(u,v),每個點後有一個空格。測試資料保證每個點到原點的距離都不同。
樣例輸入4
1 3
2 5
1 4
4 2
樣例輸出(1,3) (1,4) (4,2) (2,5)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct d{
int x;
int y;
};
int main(){
d a[10];
int n,j;
int b[10];
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d%d",&a[i].x,&a[i].y),b[i]=a[i].x*a[i].x+a[i].y*a[i].y;
sort(b,b+n);
for(int i=0;i<n;i++){
for(j=0;j<n;j++){
if (b[i]==a[j].x*a[j].x+a[j].y*a[j].y)
{
printf("(%d,%d) ",a[j].x,a[j].y);
break;
}
}
}
return 0;
}