#include<stdio.h>
int Array1(int n, int (*aptr)[50], int num)
{
        static int num1=0;
        int i;

        if(n==0)
                return 0;
        if(n==1)
                return 1;

        for(i=0; i<n-1; i++)
        {
                aptr[num1][i+num1] = num;
                aptr[i+num1][n-1+num1] = num+n-1;
                aptr[n-1+num1][n+num1-1-i] = num+n-1+n-1;
                aptr[n+num1-1-i][num1] = num+n-1+n-1+n-1;
                num++;
        }
        num1++;
        Array1(n-2, aptr, num+n-1+n-1+n-1);
}
void print(int n, int (*aptr)[50])
{
        int i,j,f,p=0;
        f=n*n;
        while(f!=0)
        {
                f=f/10;
                p++;
        }
        for(i=0; i<n; i++)
        {
                for(j=0; j<n; j++)
                        printf("%*d ", p, aptr[i][j]);
                printf("n");
        }
}
int main(void)
{
        int arr[50][50];
        int n, k;
        printf("숫자 입력:");
        scanf("%d", &n);
        k = Array1(n, arr, 1);
        if(k)
                arr[n/2][n/2]=n*n;

        print(n, arr);
        return 0;
}


--------------------------------------------

다 만들고나서 인터넷으로 재귀버전 검색해보니까 내꺼 너무 초라함 애휴