输出魔方阵。所谓魔方阵是指该方阵的每一行、每一列和对角线之和均相等。 例如: 8 1 6 3 5 7 4 9 2
输入格式:
输入一个整数n,1<=n<=15。
输出格式:
输出结果,每个数字占5个域宽。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
8 1 6
3 5 7
4 9 2
#include<stdio.h>
int main(){
int a[16][16],i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
a[i][j]=0;
}
}
j=n/2+1;
a[1][j]=1;
for(k=2;k<=n*n;k++){
i=i-1;
j=j+1;
if((i<1)&&(j>n)){
i=i+2;
j=j-1;
}
else{
if(i<1) i=n;
if(j>n) j=1;
}
if(a[i][j]==0)
a[i][j]=k;
else{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%5d",a[i][j]);
}
printf("\n");
}
return 0;
}