[문제]
길이가 4x4인 int형 2차원 배열을 선언하고, 모든 요소를 아래 그림의 왼쪽에 있는 형태와 동일하게 초기화하자. 그리고 배열의 요소들을 오른쪽 방향으로 90º씩 이동시켜서 그 결과를 출력하는 프로그램을 작성해보자.
참고로 배열이 변경되는 형태는 아래와 같다.
<조건1>
출력을 하는 함수와 90º회전하는 함수 두 개를 만들 것
[실행결과]
[코드]
#include<stdio.h>
void ShowArr(int(*arr)[4]);
void RotateArr(int(*arr)[4]);
int main(void)
{
int i;
int arr[4][4] = {
{ 1, 2, 3, 4},
{ 5, 6, 7, 8},
{ 9, 10, 11, 12},
{13, 14, 15, 16}
};
for (i = 0; i < 3; i++)
{
RotateArr(arr);
ShowArr(arr);
}
return 0;
}
void RotateArr(int(*arr)[4])
{
int i, j;
int temp[4][4];
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
temp[j][3 - i] = arr[i][j];
}
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
arr[i][j] = temp[i][j];
}
}
void ShowArr(int(*arr)[4])
{
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
printf("%2d ", arr[i][j]);
printf("\n");
}
printf("\n");
}
<참고>
윤성우의 열혈 C 프로그래밍
'C 언어 > 연습문제' 카테고리의 다른 글
C언어 연습문제30 (0) | 2022.03.25 |
---|---|
C언어 연습문제29 (0) | 2022.03.23 |
C언어 연습문제27 (0) | 2022.03.18 |
C언어 연습문제26 (0) | 2022.03.17 |
C언어 연습문제25 (0) | 2021.11.30 |