</pre><pre name="code" class="cpp">#include<stdio.h>
int main()
{
int a[100][100];
int N,M,i,j;
while(scanf("%d",&N)!=EOF)
{
scanf("%d",&M);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
a[i][j]=0;
}
}
int start=1;
i=0,j=0;
a[i][j]=start;
for(;start<N*M;)
{
while(j+1<M && a[i][j+1]==0) {a[i][++j]=++start;} //向右
while(i+1<N && a[i+1][j]==0) {a[++i][j]=++start;} //向下
while(j-1>=0 && a[i][j-1]==0) {a[i][--j]=++start;} //向左
while(i-1>=0 && a[i-1][j]==0) {a[--i][j]=++start;} //向上
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
if(j==M-1)
printf("%2d",a[i][j]);
else
printf("%2d ",a[i][j]);
}
printf("\n");
}
}
}
注意把细节分析到位,行、列对应好。。。。。。。
Sample Input
4 3
Sample Output
1 2 3
10 11 4
9 12 5
8 7 6
我是菜鸟之 简单循的环应用---蛇形矩阵
最新推荐文章于 2022-09-27 13:13:01 发布