Как получить доступ к элементам в массиве в обратном порядке?

Поэтому я не понимаю, что я делаю неправильно (синтаксическая ошибка, вложенный цикл или просто глупая ошибка ??). Мой компилятор попросил меня нажать любую клавишу, чтобы продолжить. , , Не могли бы вы указать мне в правильном направлении?

#include "stdafx.h"#include <iostream>

using namespace std;

int main()
{
const int MAX_ROWS = 2;
const int MAX_COLS = 4;

int BigSmall[MAX_ROWS][MAX_COLS] =
{
{1,3,5,7},
{2,4,6,8}
};

for( int Row = 2; Row > MAX_ROWS; Row--)
{
for( int Column = 4; Column > MAX_COLS; Column--)
{
cout << "Integer[" << Row << "][" << Column << "] = " << BigSmall[Row][Column] << endl;
}
}
return 0;
}

0

Решение

for( int Row = 2; Row > MAX_ROWS; Row--)

Row а также MAX_ROWS оба равны 2, что вы хотите Row > 0

То же самое касается цикла столбцов

2

Другие решения

Синтаксическая ошибка, вложенный цикл или просто глупая ошибка?

Позднее: вы начинаете свой внутренний цикл в четыре, и продолжаете пока Column является выше четыре. Это то же самое, что никогда не начинать. Внешний цикл имеет ту же проблему.

Вы должны начать свой цикл в SIZE-1 (Т.е. MAX_ROWS - 1 или же MAX_COLS - 1) и продолжайте, пока вы находитесь выше или в нуле:

for( int Row = MAX_ROWS-1; Row >= 0 ; Row--) {
for( int Column = MAX_COLS - 1; Column >= 0 ; Column--) {
cout << "Integer[" << Row << "][" << Column << "] = " << BigSmall[Row][Column] << endl;
}
}

Demo.

1

Ты имеешь ввиду

for( int Row = MAX_ROWS - 1; Row >=0 ; Row--)
{
for( int Column = MAX_COLS - 1; Column >= 0 ; Column--)
{
cout << "Integer[" << Row << "][" << Column << "] = " << BigSmall[Row][Column] << endl;
}
}

?

0
По вопросам рекламы [email protected]