输入两个整数 nn 和 mm,输出一个 nn 行 mm 列的矩阵,将数字 11 到 n×mn×m 按照回字蛇形填充至矩阵中。
具体矩阵形式可参考样例。
输入格式
输入共一行,包含两个整数 nn 和 mm。
输出格式
输出满足要求的矩阵。
矩阵占 nn 行,每行包含 mm 个空格隔开的整数。
数据范围
1≤n,m≤1001≤n,m≤100
输入样例:
3 3
输出样例:
1 2 3
8 9 4
7 6 5
跟着y总学的
#include<stdio.h>
int q[110][110];
int main()
{
int dx[4] = {-1,0,1,0}, dy[4] = {0,1,0,-1};
int n,m;
scanf("%d %d",&n,&m);
int x = 0,y = 0,d = 1;
for(int i = 1;i<=n*m;i++)
{
q[x][y] = i;
int a = x + dx[d];
int b = y + dy[d];
if(a<0||a>=n||b<0||b>=m||q[a][b])
{
d = (d+1)%4;
a = x + dx[d];
b = y + dy[d];
}
x = a,y = b;
}
for(int i = 0;i<n;i++)
{
for(int j = 0;j<m;j++)
{
printf("%d ",q[i][j]);
}
printf("\n");
}
return 0;
}