gpt4 book ai didi

c - 如何访问二维数组的外边界元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:23:35 25 4
gpt4 key购买 nike

假设一个数组 x[3][3] 的元素为

1 2 3
4 5 6
7 8 9

如何访问 x 的外边界元素 1,2,3,6,9,8,7,4,1 ?我能够为这个问题想出一些模式,但很难将它转换成循环。我们需要保持行不变并增加列号。然后是列号恒定并增加行号。然后我们需要保留行号。恒定并减少列号。到 0,最后保留第 1 列。常数减少行号。回到0。

最佳答案

你可以通过为行保留一对“坐标”变量r和为列保留一对“delta”变量来解决这个问题dr 用于更改下一步的行,dc 用于更改下一步的列。

这里是 dr 和 `dc 的有效组合:

dr dc direction
-- -- ---------
0 1 Right
1 0 Down
0 -1 Left
-1 0 Up

dr 从零开始,dc1 开始“向右移动”。在循环的每次迭代中,将 dr 添加到 r,并将 dc 添加到 c。之后,您检查是否需要“右转”。

右转的技巧就在下面三行代码中:

int tmp = dr;
dr = dc;
dc = -tmp;

为确保它有效,请尝试以上四种组合。您会看到它以右-下-左-上-右的顺序更改了 (dr, dc) 对...等等。

每次到达角落时执行此代码以完成程序。

关于c - 如何访问二维数组的外边界元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29324950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com