#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