1. 程式人生 > >奇數階魔方(二維陣列)

奇數階魔方(二維陣列)

#include<stdio.h>
#define N 20
int main()
{
    int n,k,i,j,T;
    int a[N][N];
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        i=0,j=n/2;
        a[i][j]=1;
        for(k=2; k<=n*n; k++)
        {
            if(k%n==1)
                i=i+1;
            else
            {
                i=i-1;
                j=j+1;
            }
            if(i==-1)
                i=n-1;
            if(j==n)
                j=0;
            a[i][j]=k;
        }
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            {
                printf("%4d",a[i][j]);
            }
            printf("\n");
        }
    }
    return 0;
}