题目描述
蛇形矩阵
运用模拟法,把握矩阵数据输入先后顺序
样例
#include <stdio.h>
int main()
{
int a[100][100];
int r;
scanf("%d",&r);
int c;
scanf("%d",&c);
int left=0,right=c-1;
int top=0,bottom=r-1;
int k=1;
while(left<=right&&top<=bottom)
{
for(int i=left;i<=right&&top<=bottom;i++)//最上面一行
{
a[top][i]=k++;
}
top++;
for(int i=top;i<=bottom&&left<=right;i++)//最右侧一列
{
a[i][right]=k++;
}
right--;
for(int i=right;i>= left&&top<=bottom;i--)//最下面一行
{
a[bottom][i]=k++;
}
bottom--;
for(int i=bottom; i>=top&&left<=right;i--)//最左侧一列
{
a[i][left] = k++;
}
left++;
}
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++) printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}