Run ID:158297

提交时间:2026-08-20 18:01:54

#include <bits/stdc++.h> using namespace std; int main() { int N; cin>>N; int a[101][101]; int top=0,bottom=N-1,left=0,right=N-1,num=1; while(num<=N*N) { // 向下 for(int i=top;i<=bottom && num<=N*N;i++) { a[i][right]=num; num++; } right--; // 向左 for(int i=right;i>=left && num<=N*N;i--) { a[bottom][i]=num; num++; } bottom--; // 向上 for(int i=bottom;i>=top && num<=N*N;i--) { a[i][left]=num; num++; } left++; // 向右 for(int i=left;i<=right && num<=N*N;i++) { a[top][i]=num; num++; } top++; } // 输出矩阵,修复bug for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ cout<<a[i][j]<<" "; } cout<<endl; //每行结束换行 } return 0; }