各位大佬们能帮蒟蒻看看吗?

P5731 【深基5.习6】蛇形方阵

@[lht20090314](/user/728458) 你的代码我看不懂,这道题其实很简单
by jacy1949 @ 2023-04-08 13:40:19


数组定义怎么能用变量定义?
by LiJoQiao @ 2023-04-08 13:56:04


你的代码我直接复制到本地1没问题,2就RE了
by LiJoQiao @ 2023-04-08 14:12:45


@[jacy1949](/user/891662) 我的想法是用循环一个一个的把数字填上去,最后输出,但不知道为什么有问题
by lht20090314 @ 2023-04-08 22:32:29


@[LiJoQiao](/user/945364) 我本地甚至连样例都过不去,所以我想知道到底哪里有问题?
by lht20090314 @ 2023-04-08 22:33:54


@[lht20090314](/user/728458) 把 ``` for (int i = 2; i <= n * n; i++) { if (y != n && a[x][y + 1] == 0) a[x][y + 1] = i, y++; // 不在最后一列并且右边没有数字 else if (x != n && a[x + 1][y] == 0) a[x + 1][y] = i, x++; // 不在最后一行并且下面没有数字 else if (y != 1 && a[x][y - 1] == 0) a[x][y - 1] = i, y--; // 不在第一列并且左边没有数字 else if (a[x - 1][y] == 0) a[x - 1][y] = i; x--; // 上面没有数字 } ``` 改成 ``` while (k<=n*n) { while(y<n&&!a[x][y+1])a[x][++y]=k++; while(x<n&&!a[x+1][y])a[++x][y]=k++; while(y>1&&!a[x][y-1])a[x][--y]=k++; while(x>1&&!a[x-1][y])a[--x][y]=k++; } ```
by jacy1949 @ 2023-04-11 19:25:40


|