题目
2.蛇形填数 给出 n * n 方阵,要求从 1 开始按顺序依次填写,填写方式如下: n = 4 时, 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13 输入 n,请打印出方阵。
代码#include int main (void) { int n,a,b,c,d; int i[10][10]; int p[10][10]; scanf("%d",&n); //给出n*n for(a=0,c=1;a<n;a++) { for(b=0;b<n;b++) { i[a][b]=c++; } } for(a=0;a<n;a++) { for(b=0;b<n;b++) { p[a][b]=i[b][a]; } } for(b=0,c=0;b<n;b++,c++) { if(b%2==0) { for(a=0,d=0;a<=n-1;a++,d++) { i[c][d]=p[a][b]; } } else { for(a=n-1,d=0;a>=0;a--,d++) { i[c][d]=p[a][b]; } } } for(a=0;a<n;a++) { for(b=0;b<n;b++) { printf("%4d",i[b][a]); } printf("\n"); } getchar(); return 0; }