Se consideră un vector a cu elemente numere întregi, cu lungimea n. Să se rearanjze elementele vectorului astfel încât numerele pare să fie scrise înaintea numerelor impare. 18

Pentru a rearanja elementele vectorului astfel încât numerele pare să fie scrise înaintea numerelor impare, putem folosi o metodă simplă de sortare.

Putem utiliza două variabile pentru a ține evidența pozițiilor în vectorul a: i pentru numerele pare și j pentru numerele impare. Parcurgem vectorul a și pentru fiecare element verificăm dacă este par sau impar. Dacă este par, îl plasăm la poziția i și incrementăm i, altfel îl plasăm la poziția j și incrementăm j.

După ce am parcurs întregul vector, toate numerele pare vor fi plasate înaintea numerelor impare.

#include <iostream>

using namespace std;

int main() {

    const int MAX = 100;

    int n, a[MAX], i = 0, j = 0;

    // Citirea vectorului a

    cout << „Introduceti lungimea vectorului: „;

    cin >> n;

    cout << „Introduceti elementele vectorului: „;

    for (int k = 0; k < n; k++) {

        cin >> a[k];

    }

    // Rearanjarea elementelor vectorului

    while (j < n) {

        if (a[j] % 2 == 0) {

            swap(a[i], a[j]);

            i++;

        }

        j++;

    }

    // Afisarea vectorului a rearanjat

    cout << „Vectorul a dupa rearanjare este: „;

    for (int k = 0; k < n; k++) {

        cout << a[k] << ” „;

    }

    cout << endl;

    return 0;

}

Observați că în cod am utilizat funcția swap() pentru a interschimba elementele vectorului. Această funcție este predefinită în biblioteca standard C++ și este utilizată pentru a interschimba valorile a două variabile.

Dacă este necesar să evitați utilizarea funcției swap(), puteți folosi o variabilă auxiliară pentru a salva temporar o valoare înainte de a o suprascrie cu alta valoare. De exemplu, pentru interschimbarea valorilor variabilelor a și b, puteți utiliza următorul cod:

int temp = a;

a = b;

b = temp;

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *