我们有一个* n矩阵,例如我们取n = 4,矩阵如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
我们必须按顺序遍历它:
1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10
我怎样才能做到这一点?
在这种情况下,“遍历”可能意味着访问和打印每个条目。您希望从顶部开始顺时针旋转。
以下是您需要做的英语句子风格描述:
如果您可以找到转到子矩阵的TOP-LEFT元素的方法,请从左到右读取顶行中的条目,从上到下读取右列中的条目,在从右到左的底行,然后从左到右的左列,你有一次迭代。 您可以使用剩余的子矩阵并继续,直到您没有任何剩余。
进一步提示:
从细胞M [x] [y],
首先,尝试找到一个合适的类型来建模矩阵,这样就可以很容易地使用它。 至少,它应该是一种类型,允许您通过行/列号访问矩阵中的元素,这样您基本上可以访问矩阵的第i
行和第j
列中的元素,类似于m(i, j)
假设您找到了这样的类型,请注意您被要求以螺旋(顺时针方式)方式迭代矩阵。 所以这里有一个重复:螺旋的每一轮与其他螺旋大致相同,只是内螺旋稍微小一点; 实际上,每个螺旋比前一个螺旋小一个恒定量。
以上就是c/c++开发分享用于遍历* n矩阵的c程序相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/541824.html