STUDY

20장 도전2. 달팽이배열

갓갱 2017. 2. 23. 00:12
반응형

#include<stdio.h>  //20장 도전2

int main(void)

{

int n,n1, k = 1;

int m = 0;//k는 대입 수

int i = 0, j = 0; //i는 세로 ,j는 가로

printf("원하는 n x n배열의 n을 입력하시오(10이하) : ");

scanf("%d", &n);

n1 = n;


int arr[10][10];

int(*arrPtr)[10] = &arr;

while (n > 0)

{

//첫째줄 가로 동방향

if (i >= 0 && j >= 0)

{

for (;j < n;j++)  //가로++

{

arrPtr[i][j] = k;

k++;

}

j--; //j=n(4)이므로 n-1(3)으로만들어줌

i = i + 1;//다음칸으로 이동(행추가)

}

//세로 남방향

if (i >= 0 && j >= 0)

{

for (;i < n;i++)

{

arrPtr[i][j] = k;

k++;

}

i--;//i=4이므로 -1해준다

j--;//j=2가됨 왼쪽열로 이동

}

//가로 서방향

if (i >= 0 && j >= 0)

{

for (;j >= m;j--)

{

arrPtr[i][j] = k;

k++;

}

i--;//i=2

j++;//j=0

}

//세로 북방향

if (i >= 0 && j >= 0)

{

for (;i > m;i--)

{

arrPtr[i][j] = k;

k++;

}

i++;//i=1;

j++;

}

n = n - 1;

m++;


}


for (i = 0;i < n1;i++)  //출력

{

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

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

printf("\n");

}


return 0;

}


이코드 짜는데 3시간을 넘게 고민하고 코딩했다.. 포기하지않고 끝을 보니 행복하군 ㅎㅎ


반응형

'STUDY' 카테고리의 다른 글

20장 도전1  (0) 2017.02.22
C언어 포인터의 포인터  (0) 2017.02.21
17장 포인터의 포인터, 포인터 배열 연습  (0) 2017.02.20
17-1  (0) 2017.02.19