昨天还看到的,怎么今天就没啦?
#include <stdio.h> #define N 5 void main() { int n,i1,j1,i2,j2,k,s[N][N]; /*i1,j1,i2,j2分别是距阵的上下左右边界*/ n=i1=j1=0; i2=j2=N-1; while(i1<=i2) { for(k=j1;k<=j2;k++)s[i1][k]=++n; i1++; for(k=i1;k<=i2;k++)s[k][j2]=++n; j2--; for(k=j2;k>=j1;k--)s[i2][k]=++n; i2--; for(k=i2;k>=i1;k--)s[k][j1]=++n; j1++; } for(i1=0;i1<N;i1++) { for(j1=0;j1<N;j1++) printf("%5d",s[i1][j1]); printf("\n"); } }
这是我在网吧写的,没有编译测试过,你试试,反正是这思路。