array2.c
来自「自己做的常用库和实现的数据结构。public domain.」· C语言 代码 · 共 70 行
C
70 行
/* Demo of simple array manipulation. * * Written by Cyril Hu (cyrilhu@gmail.com), public domain. */#define N 5arr1(int a[][N]){ int i,j,k=1; for(i=0; i<N; i++) for(j=0; j<N; j++) a[i][j] = k++;}arr2(int a[][N]){ int i,j,t1,t2,k=1; for(i=0; i<N; i++) for(t1=t2=i,j=0; j <= t1;) a[t2--][j++] = k++; for(t1=0,t2=1; t1<N; t1++,t2++) for(i=N-1,j=t2; i>t1;) a[i--][j++] = k++;}arr3(int a[][N]){ int i,j,k=1; for(i=0; i<N; i++) for(j=0; j<N; j++) if(i%2 != 0) a[i][N-1-j] = k++; else a[i][j] = k++;}arr4(int x[][N]){ int i,j,a,b,c,d,k=1; for(c=0,d=N; k<=N*N; c++,d--) { for(j=a=c; j<d; j++) x[a][j] = k++; for(i=a+1,b=j-1; i<d; i++) x[i][b] = k++; for(j=b-1; j>=c; j--) x[b][j] = k++; for(i=b-1; i>=c+1; i--) x[i][a] = k++; }}put(int a[][N]){ int i,j; for(i=0; i<N; i++) { for(j=0; j<N; j++) printf("%d\t", a[i][j]); puts(""); } puts("");}main(){ int a[N][N]; arr1(a); put(a); arr2(a); put(a); arr3(a); put(a); arr4(a); put(a);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?