c语言蛇形填阵将1~n*n填入一个n*n的矩阵中,并要求成为蛇形.蛇形即是从右上角开始向下,向左,向上,向右,循环填入数字.比如n=5时矩阵为:13 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 49 8 7 6 5输入
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 04:20:27
c语言蛇形填阵将1~n*n填入一个n*n的矩阵中,并要求成为蛇形.蛇形即是从右上角开始向下,向左,向上,向右,循环填入数字.比如n=5时矩阵为:13 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 49 8 7 6 5输入
c语言蛇形填阵
将1~n*n填入一个n*n的矩阵中,并要求成为蛇形.蛇形即是从右上角开始向下,向左,向上,向右,循环填入数字.
比如n=5时矩阵为:
13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5
输入
输入有多行,每行为一个整数n(1
c语言蛇形填阵将1~n*n填入一个n*n的矩阵中,并要求成为蛇形.蛇形即是从右上角开始向下,向左,向上,向右,循环填入数字.比如n=5时矩阵为:13 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 49 8 7 6 5输入
#include<stdio.h>
#define MAXN 50
int a[MAXN][MAXN];
int main()
{
int n, x, y, tot = 0;
scanf("%d", &n);
memset(a, 0, sizeof(a));
tot = a[x = 0][y = n - 1] = 1;
while(tot < n * n)
{
while(x + 1 < n && ! a[x + 1][y]) a[++x][y] = ++tot;
while(y - 1 >= 0 && ! a[x][y - 1]) a[x][--y] = ++tot;
while(x - 1 >= 0 && ! a[x - 1][y]) a[--x][y] = ++tot;
while(y + 1 < n && ! a[x][y + 1]) a[x][++y] = ++tot;
}
for(x = 0; x < n; x++)
{
for(y = 0; y < n; y++)
printf("%3d", a[x][y]);
puts("");
}
return 0;
}