自己写的求奇数幻方的代码
#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]