#include <stdio.h>
#include <stdlib.h>
int arr[5][5];
void horizon()
{
int i, j, tmp;
for (i = 0; i < 3; i++) {
for (j = 0; j < 5; j++) {
tmp = arr[i][j];
arr[i][j] = arr[4-i][j];
arr[4-i][j] = tmp;
}
}
}
void vertical()
{
int i, j, tmp;
for (i = 0; i < 5; i++) {
for (j = 0; j < 3; j++) {
tmp = arr[i][j];
arr[i][j] = arr[i][4-j];
arr[i][4-j] = tmp;
}
}
}
void r_rotate()
{
int i, j, tmp;
for (i = 0; i < 5; i++) {
tmp = arr[i][4];
for (j = 4; j > 0; j--) arr[i][j] = arr[i][j-1];
arr[i][0] = tmp;
}
}
void l_rotate()
{
int i, j, tmp;
for (i = 0; i < 5; i++) {
tmp = arr[i][0];
for (j = 0; j < 4; j++) arr[i][j] = arr[i][j+1];
arr[i][4] = tmp;
}
}
void print()
{
int i, j;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) printf("%2d ", arr[i][j]);
printf("\n");
}
printf("\n");
}
void menu_dsp()
{
printf("1. 상하 교환\n2. 좌우 교환\n3. 우로 회전\n4. 좌로회전\n5. 종료\n\n");
}
int main()
{
int i, j, select;
int *ptr;
// srand((null)time(NULL));
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
arr[i][j] = rand() % 25 + 1;
ptr = &arr[0][0];
while (ptr < &arr[i][j]) {
if(*ptr == arr[i][j]) {
j--;
break;
}
ptr++;
}
}
}
print(arr);
while (1) {
menu_dsp();
printf("작업 : ");
scanf("%d", &select);
switch (select) {
case 1 : horizon(arr); print(arr); break;
case 2 : vertical(arr); print(arr); break;
case 3 : r_rotate(arr); print(arr); break;
case 4 : l_rotate(arr); print(arr); break;
case 5 : return; break;
defaule : break;
}
}
return 0;
}