#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);
}
재귀함수까지 써서 만들었는데 잘했나요오?
해당 댓글은 삭제되었습니다.
4x4 int형 2차원 배열을 90도 이동시키는 배열을 만들었어요!