蛇形填数
在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