#include<stdio.h>
main(){
int a[15][15];
int ok=0,n,i,j,m;
for(i=0;i<15;i++)
for(j=0;j<15;j++)
a[i][j]=0;
while(ok==0){
printf("input n:");
scanf("%d",&n);
printf("\n");
if(n%2!=0&&n<=15&&n>0)
ok=1;
else ok=0;
}
i=0;
j=n/2;
a[i][j]=1;
for(m=2;m<=n*n;m++){
if(i==0&&j!=n-1){
i=n-1;
j++;
if(a[i][j]==0)
a[i][j]=m;
else{
i=1;
j=j-1;
a[i][j]=m;
}
}
else if(i!=0&&j==n-1){
i--;
j=0;
if(a[i][j]==0)
a[i][j]=m;
else{
i=i+2;
j=n-1;
a[i][j]=m;
}
}
else if(i==0&&j==n-1){
i=n-1;
j=0;
if(a[i][j]==0)
a[i][j]=m;
else{
i=1;
j=n-1;
a[i][j]=m;
}
}
else{
i=i-1;
j=j+1;
if(a[i][j]==0)
a[i][j]=m;
else{
i=i+2;
j=j-1;
a[i][j]=m;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
C语言奇数阶魔方阵
最新推荐文章于 2023-12-19 23:41:22 发布