算法入门经典P40-3-3(C表达式的简洁写法)
#include<iostream> #define maxn 20 int a[maxn][maxn]; #include<string.h> using namespace std; int main(){ int x,y,tot = 0,n; scanf("%d",&n); tot = a[x=0][y=n-1] = 1; while(tot<n*n){ while(x+1<n &&!a[x+1][y]) a[++x][y] = ++tot; while(y-1>=0&&!a[x][y-1]) a[x][--y] = ++tot; while(x-1>=0&&!a[x-1][y]) a[--x][y] = ++tot; while(y+1<n &&!a[x][y+1]) a[x][++y] = ++tot; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ printf("%3d",a[i][j]); } printf("\n"); } return 0; }

浙公网安备 33010602011771号