선형 알골즘 .

2008/06/27 16:21

#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);  

}  


음냥 .. 이거 이외도 많은뎁 .. 더 있으면 링크점 .