Поменять местами значения элементов, находящихся на нечетных позициях, с правым соседом

Рейтинг: 0Ответов: 1Опубликовано: 23.03.2023

Помогите, пожалуйста. Я написала код для задачи, где надо Поменять местами значения элементов, находящихся на нечетных позициях, с правым соседом. Но программа выдает ошибку компиляции не могу понять в чём проблема.


#include <iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0; i<2*n; i++)
        cin>>a[i];
    for(int i=0; i<((2*n)-1); i+=2){
         int b=a[i];
            a[i]=a[i+1];
            a[i+1]=b;
           cout<<a[i]<<" ";
           cout<<a[i+1]<<" ";
    }
}

Ввод: 2 3 4 6 8 21 Вывод:3 2 6 4 21 8 -856850045 -608398848 0 0 21987 -1800889904 32764 -1002209536 0 0 (-856850045 -608398848 0 0 21987 -1800889904 32764 -1002209536 0 0-эти символы лишние)

Ответы

▲ 1

В зависимости от того, что ответите на вопрос Harry, оставьте строку #define _132546 как есть или закомментируйте ее.

#include <iostream>
using namespace std;

#define  _132546

int main() {
    int n;
    cin >> n;
    int* a = new int[n];

    for (int i = 0; i < n; i++) cin >> a[i];

    for (int i =
#if defined(_132546)
                1;
#else
                0;
#endif
            i + 1 < n; i += 2) {
        int b = a[i];
        a[i] = a[i + 1];
        a[i + 1] = b;
        }

    for (int i = 0; i < n; i++) cout << a[i] << " ";

    cout << endl;

    delete[] a;
    }