Цикл по диагонали двухмерного массива (от последнего элемента к первому элементу) - PullRequest
0 голосов
/ 02 ноября 2019

Мне нужна помощь с циклом матрицы. Я знаю, как выполнить цикл по диагонали от первого элемента к последнему элементу, но я не могу понять, как сделать обратное.

Для выполнения цикла по диагонали от первого до последнего элемента я использую этот код:

for( int k = 0 ; k < dim * 2 ; k++ ) {
    for( int j = 0 ; j <= k ; j++ ) {
        int i = k - j;
        if( i < dim && j < dim ) {
            std::cout << array[i][j] << " ";
        }
    }
    std::cout << "\n";
}

Если массив имеет вид:

1 2 3
4 5 6
7 8 9

Тогда вывод кода выше будет:

1
2 4
3 5 7
6 8
9

Как получить вывод ниже?

9                                9
6 8                              8 6
3 5 7               or           7 5 3              (it doesn't matter for purpose)
2 4                              4 2
1                                1
...