maomingkun 发表于 2013-12-17 23:19:59

自己写的求奇数幻方的代码

#include <stdio.h>


void main()
{
        int a;
        int z=0;
        int i,j,k=1;
        int x=0,y;
        printf("请输入一个大于0小于16的整数,求其幻方!\n");
        scanf("%d",&z);
        y=(z-1)/2;
       
        if (z%2!=0 && z>0 &&z<=100)//判断输入的是否是小于16的奇数
        {
                for (j=0;j<z*z;j++)
                {
                        if (x<0&&k%z!=1)
                        {
                                x=x+z;
                        }
                        if (y>z-1 && k%z!=1)
                        {
                                y=y-z;
                        }
                        if (k%z==1 && k!=1)
                        {
                                x=x+2;//x=0,y=4
                                y=y-1;
                                a=k;
                                x--;
                                y++;
                                k++;
                        }
                        else
                        {
                                a=k;
                                x--;
                                y++;
                                k++;
                        }
                }
                //打印出二维数组
                for (i=0;i<z;i++)
                {
                        for (j=0;j<z;j++)
                        {
                                printf("%d\t",a);
                        }
                        printf("\n");
                }               
        }
        else
        {
                printf("请输入一个大于0小于16的整数,求其幻方!\n");
               
        }
       
       
}

页: [1]
查看完整版本: 自己写的求奇数幻方的代码