输入n和m(都不超过20)
输入n*m矩阵
sample input:
4 3
sample output:
1 2 3 4
10 11 12 5
9 8 7 6
#include<stdio.h>
int main()
{
int a[20][20]={-1};
int t,x,y;
int n,m;
t=a[x=0][y=0]=1;
scanf("%d %d",&n,&m);
while(t<n*m)
{
while(y+1<m&&!a[x][y+1])//上
a[x][++y]=++t;
while(x+1<n&&!a[x+1][y])//右
a[++x][y]=++t;
while(y-1>=0&&!a[x][y-1])//下
a[x][--y]=++t;
while(x-1>=0&&!a[x-1][y])//左
a[--x][y]=++t;
}
for(x=0;x<n;x++){
for(y=0;y<m;y++)
printf("%3d",a[x][y]);
printf("\n");
}
return 0;
}