#include <stdio.h>
int arr[100][100];
void make_arr( int n)
{
int i;
int in_num=1;
int x=0,y=-1,sw=1;
//in_num은 배열에 입력될 초기값
//x,y로 배열의 인자 위치를 좌표로 설정
//y가 -1인 이유는 반복문에서 초기 입력 위치 y를 [0]으로 만들기 위함.
while( n != 0 ){
//가로방향 진행
for(i=0 ; i<n ; i++)
{
y+=sw;
arr[x][y]=in_num++;
}
n--; //가로->세로 , 세로->가로 진행시 칸수가 하나씩 줄어듬
//세로방향 진행
for(i=0 ; i<n ; i++)
{
x+=sw;
arr[x][y] = in_num++;
}
sw*=-1; //ex)가로 방향이 오른쪽으로 진행되면 다음 가로 방향은 왼쪽으로 진행됨
}
}
//반복문을 사용해서 만들어진 배열을 출력
void print_arr( int n)
{
int i,j;
for(i=0 ; i<n; i++)
{
for(j=0 ; j<n; j++)
printf("%4d%s",arr[i][j],j==n-1 ? "\n" : "\t");
//배열 크기가 [100][100]이기 때문에 최대 자릿수가 4자리가 됨으로 4d
//행의 끝에 다다르면 개행(\n) 그렇지 않으면 탭(\t)
}
}
void main(void)
{
int n;
printf(" 종범년이 몇줄짜리로 만들까요? ");
scanf("%d",&n);
make_arr(n);
print_arr(n);
}
음냥 .. 이거 이외도 많은뎁 .. 더 있으면 링크점 .
0