C언어, 도전프로그래밍3-1문제 답안

2017. 1. 17. 20:02잡다한 것

반응형

문제)4*4의 int형 2차원 배열 선언후, 90도씩 오른쪽으로 이동시켜서 다음과 같은 모양을 만들 것.

1,2,3,4                         13,9,5,1                        16,15,14,13                4,8,12,16

5,6,7,8                         14,10,6,2                       12,11,10,9                 3,7,11,15

9,10,11,12          ->       15,11,7,3            ->        8,7,6,5        ->           2,6,10,14

13,14,15,16                  16,12,8,4                        4,3,2,1                      1,5,9,13



#include<stdio.h>


void rotatearr(int(*a1)[4])

{

int temp[4][4];

int i, j;



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

{

for (j = 0; j < 4; j++)

temp[j][3 - i] = a1[i][j];

}

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

{

for (j = 0; j < 4; j++)

a1[i][j] = temp[i][j];

}


}


void showarr(int(*a1)[4])

{

int i, j;

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

{

for (j = 0; j < 4; j++)

printf("%d ",a1[i][j]);

printf("\n");

}

printf("\n");

}

int main(void)

{

int arr[4][4] = {

{ 1, 2, 3, 4 },

{ 5, 6, 7, 8 },

{ 9, 10, 11, 12 },

{ 13, 14, 15, 16 } };


rotatearr(arr);

showarr(arr);

return 0;

}

반응형