sample
#include <stdio.h>
#include <stdlib.h>
typedef int (*pair)[2];
pair zip(int n, int a1[n], int a2[n]){
pair p = malloc(n * sizeof(*p));
for(int i = 0; i < n ; ++i){
p[i][0] = a1[i];
p[i][1] = a2[i];
}
return p;
}
int cmp(const void *a, const void *b){
pair x = (pair)a;
pair y = (pair)b;
return x[0][1] < y[0][1] ? -1 : x[0][1] > y[0][1];
}
int main(void){
int arr[] = {1,2,3,4,5,6};
int arr1[] = {16,13,11,18,19,10};
int size = sizeof(arr)/sizeof(*arr);
pair A = zip(size, arr, arr1);
for(int i = 0;i<size;++i){
printf("{");
printf("{%d, %d}", A[i][0], A[i][1]);
if(i!=size-1)
printf(",");
else
printf("}\n");
}
qsort(A, size, sizeof(*A), cmp);
for(int i = 0;i<size;++i){
printf("{");
printf("{%d, %d}", A[i][0], A[i][1]);
if(i!=size-1)
printf(",");
else
printf("}\n");
}
return 0;
}