fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define ROWS 5
  5. #define COLUMNS 5
  6.  
  7. typedef char Row[COLUMNS];
  8.  
  9. int compareVertical(const void *a, const void *b)
  10. {
  11. return (*(Row *)a)[0] - (*(Row *)b)[0];
  12. }
  13.  
  14. int compareHorizon(const void *a, const void *b)
  15. {
  16. return *(char *)a - *(char *)b;
  17. }
  18.  
  19. int main()
  20. {
  21. char arr[ROWS][COLUMNS] = {
  22. "ebacd",
  23. "olmkn",
  24. "fghij",
  25. "xywuv",
  26. "trpqs"};
  27.  
  28. qsort(arr, ROWS, sizeof(Row), compareVertical);
  29.  
  30. for (int row = 0; row < ROWS; ++row)
  31. {
  32. qsort(arr[row], COLUMNS, sizeof(char), compareHorizon);
  33. }
  34.  
  35. for (int row = 0; row < ROWS; ++row)
  36. {
  37. for (int column = 0; column < COLUMNS; ++column)
  38. {
  39. printf("%c", arr[row][column]);
  40. }
  41. printf("\n");
  42. }
  43.  
  44. return 0;
  45. }
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
abcde
fghij
klmno
pqrst
uvwxy