这种构造图形矩阵的题,不要慌,慢慢来!找规律,找边界。
很明显,就是边界的灵活移动,可以不从中间开始,可以从左上方开始~
int m[15][15];
int main()
{
int c=10*10; //左上方的数
int l=1,r=10,u=1,d=10; //左 右 上 下的边界
int x=1,y=1;
while(c>0)
{
for(int i=l;i<=r;i++)
m[u][i]=c--;
u++;
for(int i=u;i<=d;i++)
m[i][r]=c--;
r--;
for(int i=r;i>=l;i--)
m[d][i]=c--;
d--;
for(int i=d;i>=u;i--)
m[i][l]=c--;
l++;
}
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
cout<<m[i][j]<<" ";
}
cout<<endl;
}
return 0;
}