#include <stdio.h>
#include <stdlib.h>

int compw(const void *a, const void *b){
	struct data *p1 = (struct data *)a;
	struct data *p2 = (struct data *)b;
	return (p1->x) - (p2->x);
}

int comph(const void *a, const void *b){
	struct data *p1 = (struct data *)a;
	struct data *p2 = (struct data *)b;
	return (p1->y) - (p2->y);
}

int main(void){
	struct data{
		int x, y;
	};
    struct data A[5] = {{3, 4}, {1, 2}, {5, 6}, {9, 10}, {7, 8}};
    struct data B[5] = {{10, 9}, {8, 1}, {9, 25}, {6, 81}, {7, 49}};
	int i;
    qsort(A, 5, sizeof(struct data), compw);
    qsort(B, 5, sizeof(struct data), comph);
    for(i = 0 ; i < 5; i++){
    	printf("(%d, %d) ", A[i].x, A[i].y);
	}
	printf("\n");
	for(i = 0 ; i < 5; i++){
    	printf("(%d, %d) ", B[i].x, B[i].y);
	}	
	printf("\n");
	system("pause");
	return 0;
}