#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int m,n,i,j;
cin>>m>>n;
cout<<m<<n<<endl;
int **data=new int*[m];
for(i=0;i<m;i++)
data[i]=new int[n];
int k=1,temp;
int count=m>n?n:m;
for(i=0;i<=count/2;i++)
{
for(j=i;j<n-i;j++)
data[i][j]=k++;
j--; //处理j,否则会越界
for(temp=i+1;temp<m-i;temp++)
data[temp][j]=k++;
temp--; 处理temp,否则会越界
for(j--;j>i;j--)
data[temp][j]=k++;
for(;temp>i;temp--)
data[temp][j]=k++;
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<setw(3)<<data[i][j];
cout<<endl;
}
}
结果如下:
螺旋矩阵实现
最新推荐文章于 2023-07-03 20:50:35 发布