#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;
}
'STUDY' 카테고리의 다른 글
20장 도전1 (0) | 2017.02.22 |
---|---|
C언어 포인터의 포인터 (0) | 2017.02.21 |
17장 포인터의 포인터, 포인터 배열 연습 (0) | 2017.02.20 |
17-1 (0) | 2017.02.19 |