fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int compare_ints(const void* a, const void* b)
  6. {
  7. int arg1 = *(const int*)a;
  8. int arg2 = *(const int*)b;
  9.  
  10. if (arg1 < arg2) return -1;
  11. if (arg1 > arg2) return 1;
  12. return 0;
  13.  
  14. // return (arg1 > arg2) - (arg1 < arg2); // possible shortcut
  15. // return arg1 - arg2; // erroneous shortcut (fails if INT_MIN is present)
  16. }
  17.  
  18.  
  19. int main(void) {
  20. enum {N = 3, M = 3};
  21. int arr[N][M] = {{1, 6, 7}, {3, 8, 4}, {5, 2, 1}};
  22. qsort(arr, N * M, sizeof(int), compare_ints);
  23. for (int i = 0; i < N; i++) {
  24. for (int j = 0; j < M; j++) {
  25. printf("%d ", arr[i][j]);
  26. }
  27. printf("\n");
  28. }
  29. return 0;
  30. }
  31.  
Success #stdin #stdout 0s 4708KB
stdin
Standard input is empty
stdout
1 1 2 
3 4 5 
6 7 8