Одновременные изменения в цикле C ++ for - PullRequest
1 голос
/ 17 апреля 2020

У меня есть следующий код:

for (int i = 0; i < 4; i++){
        for (int j = 7; j > 3; j--){
            cout << array[i];
            cout << array[j];
        }
    }

Здесь значение j сначала изменяется четыре раза, а затем программа начинает изменять значение i. Изменить: скажем, массив содержит числа, которые имеют отношение к их местам: массив [0] = 0, массив [1] = 1 и так далее. Этот метод создает следующую последовательность: 0 7 0 6 0 5 0 4 1 7 ... Вместо этого я хотел бы иметь 0 7 1 6 2 5 ... Как заставить их измениться одновременно?

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

Другой пример:

int j = 4;
for (int i = 3; i > -1; i--) {
    cout << array[i];
    cout << array[j];
    j++;
}
1 голос
/ 17 апреля 2020

Вы можете использовать смещение от конца, внутри массива, например:

for(int i = 0; i < 4; ++i)
  cout << array[i] + array[7 - i];
1 голос
/ 17 апреля 2020

Например

for ( int i = 0, n = 3, m = 4; i < 4; i++ )
{
    cout << array[n - i];
    cout << array[m + i];
}

Редактировать: после изменения кода в вопросе следующим образом

for (int i = 0; i < 4; i++){
        for (int j = 7; j > 3; j--){
            cout << array[i];
            cout << array[j];
        }
    }

, тогда l oop может выглядеть

for ( int i = 0, n = 7; i < 4; i++ )
{
    cout << array[i];
    cout << array[n - i];
}
...