遍历n*n矩阵的c程序
我们有一个n*n矩阵,例如,我们取n=4,矩阵如下所示遍历n*n矩阵的c程序,c,C,我们有一个n*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 我该怎么做呢?在这种情况下,“遍历”可能意味着访问和打印每个条目。您希望从顶部开始以顺时针螺旋的方式遍历它 以下是你需要做什么的英文句子描述: 如果您可以找到一种方法,转到子矩阵的左上角元素,从左到右读取顶行中的
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
我该怎么做呢?在这种情况下,“遍历”可能意味着访问和打印每个条目。您希望从顶部开始以顺时针螺旋的方式遍历它
以下是你需要做什么的英文句子描述:
如果您可以找到一种方法,转到子矩阵的左上角元素,从左到右读取顶行中的条目,从上到下读取右列中的条目,从右到左读取底行中的条目,然后从下到左读取左列中的条目,那么您有一个迭代。您可以获取剩余的子矩阵并继续,直到什么都没有剩下
进一步提示:
从单元格M[x][y]
- M[x][y+1]是右边的单元格(只要y+10)
- M[x+1][y]是下面的单元格(只要x+10)
m
的行i
和列j
中的元素,类似于m(i,j)
假设您发现了这样一种类型,请注意,要求您以螺旋(按时钟)方式迭代矩阵。这里有一个重复:螺旋的每一圈都和其他的差不多,只是内部的螺旋稍微小一点;事实上,每个螺旋都比前一个螺旋小一个常量