提交时间:2019-12-22 18:52:16

运行 ID: 3836

#include<iostream> using namespace std; int main(){ int n,a[101][101],k=1; cin>>n; int quan=(n+1)/2; // 循环每圈并绘制 for(int i=1;i<=quan;i++){ // 左上角坐标:(i,i) // 右上角坐标:(i,n+1-i) // 右下角坐标:(n+1-i,n+1-i) // 左下角坐标:(n+1-i,i) // 上部 for(int j=i;j<=n+1-i;j++){ a[i][j]=k++; } // 右部 for(int j=i+1;j<=n+1-i;j++){ a[j][n+1-i]=k++; } // 下部 for(int j=n+1-i-1;j>=i;j--){ a[n+1-i][j]=k++; } // 左部 for(int j=n+1-i-1;j>=i+1;j--){ a[j][i]=k++; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]; if(j!=n) cout<<" "; } if(i!=n) cout<<endl; } return 0; }