/* Name:碒安絤策肈き计臸砃よ皚 Author:09 1042 灵货籘 Date: 94.02.05 */ #include #include int main() { int n, m; int i, j, k[21][21]; printf("块计臸砃よ皚(n*n)ぇ娩计n(n<=19):"); scanf("%d",&n); for(i=0;i<=n+1;i++) k[0][i]=-1; for(j=1;j<=n;j++) { k[j][0]=-1; for(i=1;i<=n;i++) k[j][i]=0; k[j][n+1]=-1; } for(i=0;i<=n+1;i++) k[n+1][i]=-1; /* for(j=0;j<=n+1;j++) { for(i=0;i<=n+1;i++) printf("%3d ",k[j][i]); printf("\n"); } */ for(i=n/2+1,j=1,m=1;m<=n*n;m++) { k[j][i]=m; // printf("k[%d][%d]=%d\n",j,i,m); switch (k[j-1][i+1]) { case 0: i++; j--; break; case -1: if(j==1&&i==n) j++; else if (j==1) { j=n; i++; } else if(i==n) { i=1; j--; } break; default: j++; break; } } for(j=1;j<=n;j++) { for(i=1;i<=n;i++) printf("%3d ",k[j][i]); printf("\n"); } system("PAUSE"); return 0; }