蛇形矩阵
突然想起来一道有趣的题,不知道大家做是否做过。题是这样的:经过计算在屏幕上打印出
1 3 4 10 11 21 -------
2 5 9 12 20 ------
6 8 13 19 ----
7 14 18 ----
15 17 ------
16 -----
//********************************************** //*程序名称:输出问题 //*编程作者:fuxw //*编程时间:2005.3.8 //*编程思想简介:略...... //********************************************** #include <stdio.h> #define N 9 main() { int a[N*(N+1)/2+1],b[N][N],i,j,k,n=0;
for(k=1;k<=(N*(N+1))/2;k++) { a[k]=k;}
for(i=0;i<N;i++) for(j=0;j<N;j++) { if(n!=i) {printf("\n\n");n++;} if((i+j)<N) { if((i+j)%2==0) printf(" %-3d ",*(&a[1]+((i+j)*(i+j+1)/2)+i)); else printf(" %-3d ",*(&a[1]+((i+j)*(i+j+1)/2)+j)); }
} }