输出nm的螺旋矩阵。
输入描述:
多组测试数据,每组输入2个整数 n和m(不大于20),表示矩阵的行和列。
输出描述:
输出nm的回型矩阵,要求左上角元素是1,(每个元素占3个位置,靠右,每个元素中间有一个空格)。
代码:
#include <bits/stdc++.h>
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=-1)
{
int a[20][20],x=1,i,j,p=0;
while(1)
{
for(j=p; j<m-p; j++)
{
a[p][j]=x;
x++;
}
p++;
if(x==n*m+1)
break;
for(i=p; i<n-p+1; i++)
{
a[i][m-p]=x;
x++;
}
if(x==n*m+1)
break;
for(j=m-p-1; j>=p-1; j--)
{
a[n-p][j]=x;
x++;
}
if(x==n*m+1)
break;
for(i=n-p-1; i>=p; i--)
{
a[i][p-1]=x;
x++;
}
if(x==n*m+1)
break;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%3d ",a[i][j]);
putchar(10);
}
}
return 0;
}