#include <iostream>
#include <cstring>
using namespace std;
int main(){
int row=0, column=0;
cin>>row>>column;
int m[row][column]={0};
memset (m,0,sizeof(m));
int num=1;
const int MAX=row*column;
int i=0,j=0;
while(num<=MAX){
//down
while(m[i][j]==0 && i<row){
m[i++][j]=num++;
}
--i;
++j;
//right
while(m[i][j]==0 && j<column){
m[i][j++]=num++;
}
--j;
--i;
//up
while(m[i][j]==0 && i>=0){
m[i--][j]=num++;
}
++i;
--j;
//left
while(m[i][j]==0 && j>=0){
m[i][j--]=num++;
}
++j;
++i;
}
for(int i2=0;i2<row;++i2){
for(int j2=0;j2<column;++j2){
cout<<m[i2][j2]<<' ';
}
cout<<endl;
}
return 0;
}
测试数据:
10 10
输出结果: