怎么排,怎么写,先从左到右,再从上到下,再从右到左,最后从下到上
C++ 代码
#include<iostream>
using namespace std;
constexpr int N = 110;
int n,m;
int a[N][N];
int num = 1;
int main()
{
cin>>n, cin>>m;
int x_beg = 1, x_end = m, y_beg = 1, y_end = n, x, y;
while(x_end >= x_beg && num <= n*m)
{
x = x_beg, y = y_beg;
while(x <= x_end && num <= n*m) a[y][x++] = num++;
--x, ++y;
while(y <= y_end && num <= n*m) a[y++][x] = num++;
--y, --x;
while(x >= x_beg && num <= n*m) a[y][x--] = num++;
--y; ++x;
while (y > y_beg && num <= n*m) a[y--][x] = num++;
x_beg ++, x_end--, y_beg++, y_end--;
}
for(int i = 1; i <= n; ++i)
{
for(int j = 1; j <= m; ++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
blablabla