【发布时间】:2019-07-16 11:20:42
【问题描述】:
我无法以另一种方式循环遍历 NxM 矩阵。
这可能不是我可以尝试的所有内容,但我已经尝试在 google 上找到它,并使用各种不同的边框值,还尝试一遍又一遍地减去另一个索引,但我似乎无法掌握它。我做的最后一件事是创建矩阵的副本,并通过 for 循环交换行,直到最后一个是第一个,第一个是最后一个。这可行,但不是我想要的。
那里的循环从矩阵的左上角开始,从左下角到右上角。我希望另一个人从左下角开始,从右下角到左上角,或者从左上角到右下角。
循环:
for(int i = 0; i + 1 < ROWCOUNT + COLCOUNT; i++) {
printf("\n");
for(int j = 0; j - 1 < i; j++) {
int n = i - j;
int m = j;
if(n < ROWCOUNT && m < COLCOUNT) {
printf(" %d %d ", n, m);
}
}
}
Output:
0 0
1 0 0 1
2 0 1 1 0 2
3 0 2 1 1 2 0 3
4 0 3 1 2 2 1 3 0 4
5 0 4 1 3 2 2 3 1 4 0 5
5 1 4 2 3 3 2 4 1 5
5 2 4 3 3 4 2 5
5 3 4 4 3 5
5 4 4 5
5 5
编辑:我将尝试向您展示我正在尝试做的事情。
A B C D E F
G H I J K L
M N O P Q R
S T U V W X
Y Z AA AB AC AD
AE AF AG AH AI AJ
我的循环通过以下方式遍历这个 6x6 矩阵:
A
G B
M H C
S N I D
Y T O J E
AE Z U P K F
AF AA V Q L
AG AB W R
AH AC X
AI AD
AJ
我正在寻找一个循环以通过另一种方式。基本上是这样的:
AE
AF Y
AG Z S
AH AA T M
AI AB U N G
AJ AC V O H A
AD W P I B
R K D
L E
F
编辑:@pmg 为我提供了解决方案。谢谢!
【问题讨论】:
-
忘记了。在这个例子中,我设置了#define ROWCOUNT 6 #define COLCOUNT 6
-
从描述中我还没有理解你想如何输出矩阵。问题应该从描述你想要做什么开始。只有在那之后你做了什么或调查了什么。
-
@VladfromMoscow 对不起,我希望现在能更好地理解!
-
@pmg 天哪!你做到了!我不知道那是一个链接。非常感谢!