Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. void FlipMatrix(int mat[MATRIX_SIZE][MATRIX_SIZE], int option)
  2. {
  3. int i, j, temp_x, temp_y, size, sizemo;
  4. size = MATRIX_SIZE - 1;
  5. switch (option)
  6. {
  7. case 1:
  8. {
  9. for (i = 0; i < size; i++)
  10. for (j = 0; j < size; j++)
  11. {
  12. if (i == 0)
  13. {
  14. temp_x = mat[i + j][size];
  15. mat[i + j][size] = mat[i][j];
  16. temp_y = mat[size][size - j];
  17. mat[size][size - j] = temp_x;
  18. temp_x = mat[size - j][i];
  19. mat[size - j][i] = temp_y;
  20. mat[i][j] = temp_x;
  21. }
  22. if (MATRIX_SIZE % 2 > 0)
  23. sizemo = MATRIX_SIZE / 2 + 1;
  24. else
  25. sizemo = MATRIX_SIZE / 2;
  26.  
  27. if (i > 0 && i + j < sizemo)
  28. {
  29. int flag = 0;
  30. if (!flag) {
  31. temp_x = mat[i + j][size - i];
  32. mat[i + j][size - i] = mat[i][i + j];
  33. temp_y = mat[size - i][size - i - j];
  34. mat[size - i][size - i - j] = temp_x;
  35. temp_x = mat[size - j - i][i];
  36. mat[size - j - i][i] = temp_y;
  37. mat[i][i + j] = temp_x;
  38. }
  39. }
  40.  
  41. }
  42. MatPrint(mat);
  43. break;
  44.  
  45. }
  46.  
  47.  
  48. case 2:
  49. {
  50. for (i = 0; i < MATRIX_SIZE / 2; i++)
  51. for (j = 0; j < size; j++)
  52. {
  53. if (i == 0)
  54. {
  55. temp_x = mat[size][i + j];
  56. mat[size][i + j] = mat[j][i];
  57. temp_y = mat[size - j][size];
  58. mat[size - j][size] = temp_x;
  59. temp_x = mat[i][size - j];
  60. mat[i][size - j] = temp_y;
  61. mat[j][i] = temp_x;
  62. }
  63. if (MATRIX_SIZE % 2 > 0)
  64. sizemo = MATRIX_SIZE / 2 + 1;
  65. else
  66. sizemo = MATRIX_SIZE / 2;
  67.  
  68. if (i > 0 && i + j < sizemo)
  69. {
  70. /*temp_x = mat[i + j][size - i];
  71. mat[i + j][size - i] = mat[i][i + j];
  72. temp_y = mat[size - i][size - i - j];
  73. mat[size - i][size - i - j] = temp_x;
  74. temp_x = mat[size - j - i][i];
  75. mat[size - j - i][i] = temp_y;
  76. mat[i][i + j] = temp_x;*/
  77.  
  78. temp_x = mat[size - i][i + j];
  79. mat[size - i][i + j] = mat[i + j][i];
  80. temp_y = mat[size - i - j][size - i];
  81. mat[size - i - j][size - i] = temp_x;
  82. temp_x = mat[i][size - j - i];
  83. mat[i][size - j - i] = temp_y;
  84. mat[i + j][i] = temp_x;
  85.  
  86. }
  87.  
  88. }
  89. MatPrint(mat);
  90. break;
  91. }
  92. case 3:
  93. {
  94. int temp[MATRIX_SIZE / 2][MATRIX_SIZE];
  95. for (i = 0; i < MATRIX_SIZE / 2; i++)
  96. for (j = 0; j < MATRIX_SIZE; j++)
  97. {
  98. temp[i][j] = mat[i][j];
  99. mat[i][j] = mat[size - i][j];
  100. mat[size - i][j] = temp[i][j];
  101.  
  102. }
  103. MatPrint(mat);
  104. break;
  105. }
  106. case 4:
  107. {
  108. int temp[MATRIX_SIZE][MATRIX_SIZE / 2];
  109. for (i = 0; i < MATRIX_SIZE; i++)
  110. for (j = 0; j < MATRIX_SIZE / 2; j++)
  111. {
  112. temp[i][j] = mat[i][j];
  113. mat[i][j] = mat[i][size - j];
  114. mat[i][size - j] = temp[i][j];
  115.  
  116. }
  117. MatPrint(mat);
  118. break;
  119. }
  120.  
  121. default:
  122. break;
  123.  
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement