I think it can be done.
#include<bits/stdc++.h> using namespace std; int cmp(const void *a,const void *b) { return ((const int *)a)[0] - ((const int *)b)[0]; } int main(int argc,char *argv[]){ int list[10][2]; printf("Before sorting\n"); for(int i=0; i<10; i++){ list[i][0] = rand()%31; list[i][1] = rand()%12; printf ("list[%d][0] = %d list[%d][1] = %d\n", i, list[i][0], i, list[i][1]); } printf("AFTER sorting\n"); qsort(list,10,2*sizeof(int),cmp); for(int i=0; i<10; i++) printf ("list[%d][0] = %d list[%d][1] = %d\n", i, list[i][0], i, list[i][1]); return 0; }
Output:
Before sorting list[0][0] = 10 list[0][1] = 11 list[1][0] = 10 list[1][1] = 4 list[2][0] = 11 list[2][1] = 4 list[3][0] = 8 list[3][1] = 6 list[4][0] = 23 list[4][1] = 8 list[5][0] = 1 list[5][1] = 5 list[6][0] = 0 list[6][1] = 3 list[7][0] = 10 list[7][1] = 11 list[8][0] = 19 list[8][1] = 2 list[9][0] = 22 list[9][1] = 0 AFTER sorting list[0][0] = 0 list[0][1] = 3 list[1][0] = 1 list[1][1] = 5 list[2][0] = 8 list[2][1] = 6 list[3][0] = 10 list[3][1] = 11 list[4][0] = 10 list[4][1] = 4 list[5][0] = 10 list[5][1] = 11 list[6][0] = 11 list[6][1] = 4 list[7][0] = 19 list[7][1] = 2 list[8][0] = 22 list[8][1] = 0 list[9][0] = 23 list[9][1] = 8
source share