输出魔方阵,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如:

  • Post author:
  • Post category:其他


三阶魔方阵为:

8        1        6

3        5        7

4        9        2


代码:

#include<stdio.h>
int main(){
    int a[15][15],i,j,k,p,n;
    p=1;
    while(p==1)
    {printf("enter n(1--15):");
    scanf("%d",&n);
    if(n!=0&&(n<=15)&&(n%2!=0))
        p=0;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            a[i][j]=0;
    //建立魔方阵
    j=n/2+1;
    a[1][j]=1;
    for(k=2;k<=n*n;k++){
        i=i-1;
        j=j+1;
        if((i<1)&&(j>n))
        {i=i+2;
        j=j-1;}
        else{
            if(i<1)i=n;
            if(j>n)j=1;
        }
        if(a[i][j]==0)
            a[i][j]=k;
        else{
            i=i+2;
            j=j-1;
            a[i][j]=k;
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
            printf("%3d",a[i][j]);
        printf("\n");
    }


    return 0;
}



版权声明:本文为qq_46547005原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。