How to sort 2D array using qsort in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
     
#define ROWS 3
#define COLS 4 
     
void print_arr2d(int arr2d[][COLS]) {
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            printf("%3i", arr2d[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}
 
int compare_function(const void *a, const void *b) {
   return ( *(int*)a - *(int*)b );
}
 
int main() 
{                       
    int arr2d[ROWS][COLS] = {{5, 8, 1, 3}, 
	                         {9, 6, 12, 4}, 
							 {7, 11, 10, 2}};
	
	qsort(arr2d, ROWS * COLS, sizeof(int), compare_function); 
	
    print_arr2d(arr2d);
          
    return 0; 
} 
       
       
       
/*
run:
       
  1  2  3  4
  5  6  7  8
  9 10 11 12
       
*/

 



answered Dec 4, 2019 by avibootz

Related questions

1 answer 418 views
418 views asked Dec 3, 2019 by avibootz
1 answer 110 views
110 views asked Nov 11, 2021 by avibootz
1 answer 291 views
1 answer 72 views
72 views asked Jan 19, 2024 by avibootz
1 answer 142 views
1 answer 117 views
...