代码是AC的,但是我想不明白,球球各位大佬相助
查看原帖
代码是AC的,但是我想不明白,球球各位大佬相助
49245
yellow楼主2021/3/17 14:45
    int  k = 0,x = 1,y = 0;
    while (k <= n*n){
        while (y < n && !a[x][y+1] ){
            a[x][y]=k;
            k++;
            y+=1;
        }
        while (x < n && !a[x+1][y]){
            a[x][y]=k;
            k++;
            x+=1;
        }
        while (y - 1 > 0 && !a[x][y-1]){
            a[x][y]=k;
            k++;
            y-=1;
        }
        while (x - 1 > 0 && !a[x-1][y]){
            a[x][y]=k;
            k++;
            x-=1;
        }
        if (k == n*n) break;
    }
    for (i = 1; i<= n;i++){
        for (j = 1;j<=n;j++){
            if (a[i][j] == 0) a[i][j]=n*n;
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }

如果我没有

if (a[i][j] == 0) a[i][j]=n*n;

这句话,我就没有n*n这个数出现 还有 y=0 是为什么,改成y=1就错了,k = 1的话,就没有1了

2021/3/17 14:45
加载中...