奇数阶魔方阵简化版 #魔方阵C语言#
#include <stdio.h>
int main( )
{
int a[16][16]={0},i,j,n,k;
while(1)
{
printf("请输入魔方阶数n(1-15):\n");
scanf("%d",&n);
if(n&&(n<=15)&&(n%2))
break;
}
i=1;
j=n/2+1;
a[i][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if((i<1)&&(j>n)||a[i][j]!=0)
{
i=i+2;
j=j-1;
}
else
{
if(i<1)
i=n;
if(j>n)
j=1;
}
a[i][j]=k;
}
printf("魔方阵:\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(a[i][j]>0)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
终于成功啦☀☀