gpt4 book ai didi

c - 沿对角线循环遍历 2-dim 矩阵,但反之

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:21 25 4
gpt4 key购买 nike

我在以其他方式循环 NxM 矩阵时遇到问题。

这可能不是我可以尝试的所有方法,但我已经尝试在谷歌上找到它,并使用各种不同的边界值,还尝试一遍又一遍地减去另一个索引,但我似乎无法掌握它。我做的最后一件事是创建矩阵的副本,并通过 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 为我提供了一个解决方案。谢谢!

最佳答案

不确定您在寻找什么,但只是以另一种方式循环:

#include  "stdio.h"
#define ROWCOUNT 6
#define COLCOUNT 6

int main(void) {
for(int i = ROWCOUNT - 1; i >= 0; i--) {
for(int j = 0; j < COLCOUNT; j++) {
printf(" %d %d ", i, j);
}
printf("\n");
}
}

输出

5 0    5 1    5 2    5 3    5 4    5 5  
4 0 4 1 4 2 4 3 4 4 4 5
3 0 3 1 3 2 3 3 3 4 3 5
2 0 2 1 2 2 2 3 2 4 2 5
1 0 1 1 1 2 1 3 1 4 1 5
0 0 0 1 0 2 0 3 0 4 0 5

关于c - 沿对角线循环遍历 2-dim 矩阵,但反之,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57056098/

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