fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int I(int k)
  6. {
  7. return k%3+2*((k/3)%2)*(1-k%3);
  8. }
  9.  
  10. int J(int k)
  11. {
  12. return k/3;
  13. }
  14.  
  15. void sort(int M[4][4])
  16. {
  17. for(int b = 0, e = 11; b != e; ++b)
  18. for(int k = e, j = k--; j != b; j = k--)
  19. if (M[I(j)][J(j)] < M[I(k)][J(k)])
  20. {
  21. int t = M[I(j)][J(j)];
  22. M[I(j)][J(j)] = M[I(k)][J(k)];
  23. M[I(k)][J(k)] = t;
  24. }
  25. }
  26.  
  27. int main()
  28. {
  29. srand(time(0));
  30. int A[4][4];
  31. for(int i = 0; i < 4; ++i)
  32. for(int j = 0; j < 4; ++j)
  33. A[i][j] = rand()%20;
  34.  
  35. for(int i = 0; i < 4; ++i)
  36. {
  37. for(int j = 0; j < 4; ++j) printf("%2d ",A[i][j]);
  38. puts("");
  39. }
  40. puts("");
  41. puts("");
  42.  
  43. sort(A);
  44.  
  45. for(int i = 0; i < 4; ++i)
  46. {
  47. for(int j = 0; j < 4; ++j) printf("%2d ",A[i][j]);
  48. puts("");
  49. }
  50.  
  51. }
  52.  
Success #stdin #stdout 0s 5632KB
stdin
Standard input is empty
stdout
12 10  5 17 
 5  5 14 17 
11  3  6 17 
17  2 19  0 


 3 10 11 17 
 5  6 12 17 
 5  5 14 17 
17  2 19  0