#include<stdio.h>//void pp(int n)//打印n*n的图形//{ // _ _ _ _ // |_|_|_| _| // |_|_|_| _| // |_|_|_| _| // int i,j;// for(i=0;i<n;i++)// {// printf(" _");// }// printf("\n");// for(i=0;i<n;i++)// {// printf("|_|");// for(j=0;j<n-1;j++)// {// printf("_|");// }// printf("\n");// }//}int main(){ //148 8.4 n阶魔方方阵 int n,i,j,k; scanf("%d",&n); int arr[n][n]; if(n%2==0) { return 0; } //先将二维数组赋值为0 for(i=0;i<n;i++) { for(j=0;j<n;j++) { arr[i][j]=0; } } i=0; j=n/2; arr[i][j]=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; if(i<0&&j==n) { i=i+2; j=j-1; } else{ if(i<0) i=n-1; if(j==n) j=0; } if(arr[i][j]==0) { arr[i][j]=k; } else { i=i+2; j=j-1; arr[i][j]=k; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%5d",arr[i][j]); } printf("\n"); } //pp(n); return 0;}