方法
从上到右到下到左,一圈圈排列
#include<iostream>
using namespace std;
int main(){
int m,n,x=1;
cin>>m>>n;
int a[m][n];
int l=0,r=n-1,u=0,d=m-1;
while(l<=r&&u<=d){
for(int i=l;i<=r&&u<=d;i++) a[u][i]=x++;
u++;
for(int i=u;i<=d&&l<=r;i++) a[i][r]=x++;
r--;
for(int i=r;i>=l&&u<=d;i--) a[d][i]=x++;
d--;
for(int i=d;i>=u&&l<=r;i--) a[i][l]=x++;
l++;
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}