c++ - 由围绕矩形顺时针方向移动的数字组成的图案(长度和宽度每次都减小)

标签 c++ c arrays pointers loops

我已经为许多模式编写了代码,但无法为此编写......甚至没有得到任何如何继续的提示。

我想生成以下输出:

1  2  3  4  5 

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

...其中矩形的宽度和高度被指定为输入。

最佳答案

我会这样做:

将 5x5 二维整数数组初始化为 0。有一个 direction 变量,并为四个方向定义常量或 enum。开始从 (0, 0)“向右”移动,用递增的值填充数组,直到到达边缘或非 0 的数字。然后,递增方向(并换行)并继续。然后按行打印数组。

使用循环的另一种方法是迭代所有 (x, y) 坐标,并将 x 和 y 传递到一个函数中,该函数会给出该位置的值。我编写的函数与填充数组的函数执行完全相同的操作,只是它不写入数组,并且当它到达给定的 (x, y) 时,它返回当前值。效率不是很高,但达到了效果。

关于c++ - 由围绕矩形顺时针方向移动的数字组成的图案(长度和宽度每次都减小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042165/

相关文章:

c++ - 如何将空数组传递给 map ?

c++ - C++ 中的 TopoJSON 或 GeoJSON vector 切片

c - 结构与类型 "long long"的参数不兼容

c - 生成随机数的新方法但是

c - 我正在尝试为数组设置一个值,但我似乎无法弄清楚为什么我在第 31 行所做的事情是错误的

arrays - Erlang:阵列上的分布式工作

php - 将 foreach 作为数组提交到 MySQL

C++ 迭代器 "remove-proof"

C++ 定义变量设置值

C-随机数数组函数