int b[5][5]; void fz(int l,int r,int u,int d,int v,int n) { int x,y,i,j,k,m; if(l>r) for (x=0;x<n;x++) { for (y=0;y<n;y++) printf("%4d",b[x][y]); printf("\n"); } while(l<=r) { for (i=l;i<=r;i++) b[u][i]=v++; for (k=u+1;k<d;k++) b[k][r]=v++; for (j=r;j>l;j--) b[d][j]=v++; for (m=d;m>u;m--) b[m][l]=v++; return fz(l+1,r-1,u+1,d-1,v,n); } } int main() { int n; n=5 fz(0,n-1,0,n-1,1,n); return 0; }
温馨提示:答案为网友推荐,仅供参考