[c언어] 2차원 배열 90도 회전

2020. 12. 21. 16:31Computer Science/C

 

4 * 4 int 형 2차원 배열의 요소들을 오른쪽 방향으로 90도씩 4번을 이동시키면서 출력하는 프로그램을 작성한다.

90도씩 4번 회전하여 원래의 배열로 돌아오게 한다.

 

#include <stdio.h>

void rotateMatrix(int a[][4], int b[][4], int size)
{
    for (int i = 0; i < size;i++)
        for (int j = 0;j < 4;j++)
            b[i][j] = a[size - 1 - j][i];
}

void printMatrix(int a[][4], int size)
{
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%5d", a[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}

void initMatrix(int a[][4], int size)
{
    int num = 1;
    for (int i = 0; i < size; i++)
        for (int j = 0; j < 4; j++) {
            a[i][j] = num;
            num++;
        }
}

void copyMatrix(int a[][4], int b[][4], int size)
{
    for (int i = 0;i < size;i++)
        for (int j = 0;j < 4;j++)
            a[i][j] = b[i][j];
}
int main(void)
{
    int A[4][4], B[4][4];
    
    initMatrix(A, 4);
    printMatrix(A, 4);

    for (int i = 0;i < 4;i++) {
        rotateMatrix(A, B, 4);
        printMatrix(B, 4);
        copyMatrix(A, B, 4);
    }

}

 

결과