1. 程式人生 > >ZZULIOJ 1183: 平面點排序(一)(結構體專題)

ZZULIOJ 1183: 平面點排序(一)(結構體專題)

題目描述平面上有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; }