#include<iostream>#include<iomanip>using namespace std;#define N 50void mofang(int [][N],int );void printf(const int [][N],int );void main(){ int a[N][N]={0}; int m; cout<<"请输入行列数(要为奇数):"<<endl; cin>>m; mofang(a,m); printf(a,m); return ;}void mofang( int b[][N],int n){ int i,j=n/2;int k=2; b[0][j]=1;i=n-1;j++; while(k<=n*n) { if(b[i][j]==0) { b[i][j]=k;k++;i--;j++;} else {i+=2;j--;} if(i==-1&&j!=n) i=n-1; if(j==n&&i!=-1) j=0; if(i==-1&&j==n) {i+=2;j--;} }}void printf(const int b[][N],int n){ for(int i=0;i<n;i++) { for(int j=0;j<n;j++) cout<<setw(3)<<b[i][j]; cout<<endl; }}

评论