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 + -
显示快捷键?