输出nm的螺旋矩阵。
输入描述:
多组测试数据,每组输入2个整数 n和m(不大于20),表示矩阵的行和列。
输出描述:
输出n
m的回型矩阵,要求左上角元素是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;
}