fork download
  1. #include <stdio.h>
  2.  
  3. void rotate(int **A, int n11, int n12)
  4. {
  5. for (int i = 0; i < n11; ++i)
  6. {
  7. for (int j = 0; j < n12; ++j)
  8. printf("%2d ", A[i][j]);
  9. printf("\n");
  10. }
  11. printf("\n");
  12.  
  13. if (n11 <= 2 || n12 <= 2)
  14. return;
  15.  
  16. int *sub_A[n11 - 2];
  17. for (int i = 0; i < n11 - 2; ++i)
  18. sub_A[i] = &A[i + 1][1];
  19.  
  20. rotate(sub_A, n11 - 2, n12 - 2);
  21. }
  22.  
  23. int main(void)
  24. {
  25. int *A[] =
  26. {
  27. (int []) { 1, 2, 3, 4, 5 },
  28. (int []) { 6, 7, 8, 9, 10 },
  29. (int []) { 11, 12, 13, 14, 15 },
  30. (int []) { 16, 17, 18, 19, 20 },
  31. (int []) { 21, 22, 23, 24, 25 }
  32. };
  33.  
  34. rotate(A, 5, 5);
  35. }
  36.  
Success #stdin #stdout 0s 2008KB
stdin
Standard input is empty
stdout
 1  2  3  4  5 
 6  7  8  9 10 
11 12 13 14 15 
16 17 18 19 20 
21 22 23 24 25 

 7  8  9 
12 13 14 
17 18 19 

13