求魔方阵的算法
提示: 作者被禁止或删除 内容自动屏蔽
程序代码:#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,i1,j1,x,n,a[100][100];
printf("请输入一个奇数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
if(n%2==0)
{
printf("输入错误!");
return 0;
}
i=1;
j=(n+1)/2;
x=1;
while(x<=n*n)
{
a[i][j]=x;
x=x+1;
i1=i;
j1=j;
i=i-1;
j=j-1;
if(i==0)
i=n;
if(j==0)
j=n;
if(a[i][j]!=0)
{
i=i1+1;
j=j1;
}
}
//输出魔方
for(i=1;i<=n;i++)
{
putchar('\n');
for(j=1;j<=n;j++)
printf("%4d",a[i][j]);
}
getchar();
return 1;
}我写了一个奇数的魔方,偶数的比较麻烦,你可以自己类似的试试。希望对你有帮助。