#include"stdio.h"
void main(void)
{
int a[15][15]={0};
int i,j,k,n,p=1;
while(p==1) //参数p的设置,确定n输入范围
{
printf("请输入一个奇数n(1到15之内):");
scanf("%d",&n);
if((n>0) && (n<=15) && (n%2!=0)) //魔方阵的阶数应为奇数,偶数的暂时不会哦~~呵呵
p=0;
}
/建立魔方阵
j=n/2;
a[0][j]=1; //把“1”放在第一行中间一列上
i=0;
j=n/2;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<0)
i=n-1;
if(j>(n-1))
j=0;
a[i][j]=k;
if(k%n==0) //当这时插入的数是n的整数倍时,下一个起点设为他本列的下一行
{
a[++i][j]=++k;
}
}
printf("魔方阵:/n");
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",a[i][j]);
}
printf("/n");
}
printf("/n");
}