Programming/Algorithm

달팽이 배열

역시인생한방 2015. 2. 7. 18:33

////////////////////////////////////////////////////////////////////////////////
// Title : 달팽이 배열
// Author : 최민혁
// Revision : 2006. 10. 12 First implementation
////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>

 

const int MAX = 5;

 

int main(void)
{
    int i, j;
    int n = 0, num = 1;
    int a[MAX][MAX] = { 0, };

 

    while( num <= MAX * MAX )
    {
        for( i = 0 + n; i < MAX - n; i++ )
            a[0 + n][i] = num++;
  
        for( i = 1 + n; i < MAX - n; i++ )
            a[i][MAX - 1 - n] = num++;
  
        for( i = MAX - 2 - n; i >= 0 + n; i-- )
            a[MAX - 1 - n][i] = num++;
  
        for( i = MAX - 2 - n; i >= 1 + n; i-- )
            a[i][0 + n] = num++;

 

        n++;
    }

 

    for( i = 0; i < MAX; i++ )
    {
        for( j = 0; j < MAX; j++ )
        {
            printf( "%2d ", a[i][j] );
        }
        printf( "\n" );
    }

 

    return 0;

}