-
描述
-
在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
-
输入
- 直接输入方陈的维数,即n的值。(n<=100) 输出
- 输出结果是蛇形方陈。 样例输入
-
3
样例输出
-
7 8 1 6 9 2 5 4 3
代码:
01.
#include<stdio.h>
02.
#include<string.h>
03.
#define MAXN 100
04.
int
a[MAXN][MAXN];
05.
int
main()
06.
{
07.
int
n,x,y,tot = 0;
08.
scanf
(
"%d"
,&n);
09.
memset
(a,0,
sizeof
(a));
10.
tot = a[x = 0][y = n-1]=1;
11.
while
(tot <n*n)
12.
{
13.
while
(x + 1 < n&&!a[x+1][y]) a[++x][y] = ++tot;
14.
while
(y - 1 >= 0 && !a[x][y-1]) a[x][--y] = ++tot;
15.
while
(x - 1 >= 0 && !a[x-1][y]) a[--x][y] = ++tot;
16.
while
(y + 1 < n && !a[x][y+1]) a[x][++y] = ++tot;
17.
}
18.
for
(x = 0; x < n;x++)
19.
{
20.
for
(y = 0;y < n;y++)
21.
printf
(
"%d "
,a[x][y]);
22.
//printf("\n");
23.
}
24.
return
0;
25.
}
把从a开始的20个int类型值设置为0
通常用来初始化数组
比如
int a[20];
memset(a,0,sizeof(int)*20);