编写奇数的幻方,我们老师总结的经验,为什么我这个不行,求大神指导
#include <stdio.h>#define N 7
int main()
{
int j,i;
int a;
a[(N-1)/2]=1;
for(i=0;i<N;i=(i-1+N)%N)
{
for(j=(N-1)/2;j<N;j=(j+1+N)%N)
{
a[(i-1+N)%N][(j+1+N)%N]=a+1;
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%d",a);
}
}
return 0;
}
幻方是啥? 能吃吗? 鸡肉味? 嘎嘣脆? 向往青莲 发表于 2013-12-17 19:54 static/image/common/back.gif
幻方是啥? 能吃吗? 鸡肉味? 嘎嘣脆?
現已加入肯德基豪華午餐 下边是我写的奇数的幻方的代码,我看不懂你的,所以自己就摸索着写了一个,仅供参考!
#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");
}
} 支持鱼C,顶一下
页:
[1]