蛇形填数

在n*n方阵里填入1,2,3,...,n*n,要求填成蛇形。

 1 #include<stdio.h>
 2   #include<string.h>
 3   #define maxn 20
 4   int a[maxn][maxn];
 5   int main()
 6   {
 7       int n,x,y,tot=0;
 8       scanf("%d",&n);
 9       memset(a,0,sizeof(a));
10       tot=a[x=0][y=n-1]=1;
11       //x = 0;  
12       //y = n - 1;  
13      //a[x][y] = 1;  
14       //tot = a[x][y];
15 while(tot<n*n)       
16       {
17           while(x+1<n && !a[x+1][y] )
18           a[++x][y]=++tot;
19           while(y-1>=0 && !a[x][y-1])
20           a[x][--y]=++tot;
21           while(x-1>=0 && !a[x-1][y])
22           a[--x][y]=++tot;
23           while(y+1<n && !a[x][y+1])
24           a[x][++y]=++tot;
25           
26       }
27       for(x=0;x<n;x++)
28       {
29           for(y=0;y<n;y++)
30           printf("%3d",a[x][y]);
31           printf("\n");
32       }
33       return 0;
34    } 
35   

 

posted @ 2024-03-21 23:23  ZDhr  阅读(7)  评论(0编辑  收藏  举报