#include <stdio.h>

int rotation1(int(*arr1)[4], int(*arr2)[4], int n);

int rotation2(int(*arr1)[4], int(*arr2)[4], int n);

int main()

{

int arr1[4][4];

int arr2[4][4];


int b = 1;


for (int i = 0; i < 4; i++)

{

for (int c = 0; c < 4; c++)

{

arr1[i][c] = b++;

printf("%2d,", arr1[i][c]);

}

printf(" ");

}

printf(" ");


rotation1(&arr1[0], &arr2[0], 3);


}

int rotation1(int arr1[][4], int arr2[][4], int n)

{

if (n == 0)

return 0;

for (int i = 0; i < 4; i++)

{

int b = 0;


for (int c = 3; c >= 0; c--)

arr2[i][b++] = arr1[c][i];

}


for (int i = 0; i < 4; i++)

{

for (int c = 0; c < 4; c++)

printf("%2d,", arr2[i][c]);


printf(" ");

}


printf(" ");


rotation2(&arr1[0], &arr2[0], n - 1);


}


int rotation2(int arr1[][4], int arr2[][4], int n)

{

if (n == 0)

return 0;


for (int i = 0; i < 4; i++)

{

int b = 0;


for (int c = 3; c >= 0; c--)

arr1[i][b++] = arr2[c][i];

}


for (int i = 0; i < 4; i++)

{

for (int c = 0; c < 4; c++)

printf("%2d,", arr1[i][c]);


printf(" ");

}


printf(" ");


rotation1(&arr1[0], &arr2[0], n - 1);

}


재귀함수까지 써서 만들었는데 잘했나요오?