[c언어] 2차원 배열 90도 회전
2020. 12. 21. 16:31ㆍComputer 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);
}
}
결과
'Computer Science > C' 카테고리의 다른 글
[c언어] 행렬 곱 (0) | 2020.12.21 |
---|---|
[c언어] 행렬 합 (0) | 2020.12.21 |
[c언어] 최대공약수 구하기 (재귀함수) (1) | 2020.12.21 |
[c언어] 피보나치 수열 (재귀함수) (0) | 2020.12.21 |
[c언어] 2차원 배열 각 행, 각 열의 합 (0) | 2020.12.21 |