Почему мой обратный код массива не работает должным образом - PullRequest
0 голосов
/ 10 апреля 2019

Эй, ниже приведен код, который я придумал, может объяснить, что не так в обратном порядке массива

#include <iostream> 
using namespace std;

int main() {
    int arr[4] = {1,4,3,2};
    int size = sizeof(arr)/sizeof(arr[0]);
    int n = size - 1;
    cout << size << endl;
    cout << n << endl;
    for (int i = 0; i<size; i++)
    {
        arr[i] = arr[n - i];
        cout << arr[i] << endl;
    }
    return 0;
}

1 Ответ

1 голос
/ 10 апреля 2019

Вы ответили на свой вопрос. Но эффективно, вместо того, чтобы поменять значения с противоположных концов массива, вы перезаписываете значения в начале значениями в конце, и как только вы достигнете средней точки, вы начнете копировать их обратно во вторую половину.

Как вы написали: arr[0] = arr[3]; но позже arr[3] = arr[0]; что является просто длинным многословным способом перевернуть вторую половину массива дважды.

...