Se consideră un vector a cu elemente numere întregi, cu lungimea n, n fiind un număr par. Lungimea vectorului, un număr natural K (1<=k<=n-2) şi elementele sale a[0], a[1], a[2], …, a[n-1] se citesc de la tastatură. Să se rearanjeze elementele vectorului şi să se afişeze astfel: 10

a) a[n-1], a[0], a[1], a[2], …, a[n-2];

b) a[1], a[2], a[3], …, a[n-1], a[0];

c) a[1], a[0], a[3], a[2], …, a[n-1], a[n-2];

d) a[n-2], a[n-1], a[n-4], a[n-3], …, a[2], a[3], a[0], a[1];

e) a[k], a[k+1], a[k+2], …, a[n-2], a[n-1], a[0], a[1], …, a[k-2], a[k-1].

Pentru punctul a:

a) Pentru a rearanja vectorul a după regula dată, putem folosi o variabilă auxiliară temp pentru a stoca temporar ultimul element al vectorului, apoi putem muta fiecare element cu o poziție spre dreapta, iar la final putem plasa elementul temp pe prima poziție a vectorului.

#include <iostream>

using namespace std;

int main() {

    int n, temp;

    cout << „Introduceti lungimea vectorului (n, par): „;

    cin >> n;

    int a[n];

    cout << „Introduceti elementele vectorului: „;

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

        cin >> a[i];

    }

    // transpunem vectorul

    for (int i = 0; i < n/2; i++) {

        for (int j = i; j < n/2; j++) {

            temp = a[i*n/2+j];

            a[i*n/2+j] = a[j*n/2+i];

            a[j*n/2+i] = temp;

        }

    }

    // oglindim vectorul

    for (int i = 0; i < n/2; i++) {

        temp = a[i];

        a[i] = a[n-i-1];

        a[n-i-1] = temp;

    }

    // afisam vectorul obtinut

    cout << „Vectorul obtinut este: „;

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

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

    }

    cout << endl;

    return 0;

}

Pentru punctul b:

b) Pentru a rearanja vectorul a după regula dată, putem folosi o variabilă auxiliară temp pentru a stoca temporar primul element al vectorului, apoi putem muta fiecare element cu o poziție spre stânga, iar la final putem plasa elementul temp pe ultima poziție a vectorului.

int temp = a[0];

for(int i = 0; i < n-1; i++){

    a[i] = a[i+1];

}

a[n-1] = temp;

Pentru punctul c:

c) Pentru a rearanja vectorul a după regula dată, putem folosi o variabilă auxiliară temp pentru a stoca temporar al doilea element și al patrulea element al vectorului, apoi putem muta fiecare element cu o poziție spre dreapta, iar la final putem plasa elementele temp pe pozițiile corespunzătoare din vectorul a.

int temp1 = a[1], temp2 = a[3];

for(int i = 3; i < n-2; i+=2){

    a[i] = a[i+2];

}

a[n-2] = temp2;

for(int i = n-4; i > 0; i-=2){

    a[i] = a[i-2];

}

a[0] = temp1;

Pentru punctul d:

d) Pentru a rearanja vectorul a după regula dată, putem folosi două variabile auxiliare start și end pentru a stoca începutul și sfârșitul secvențelor de elemente din vectorul a, apoi putem muta fiecare element într-un vector auxiliar în ordinea dată, după care vom copia elementele din vectorul auxiliar înapoi în vectorul a.

#include <iostream>

using namespace std;

int main() {

  int n, k;

  cout << „Introduceti lungimea vectorului (n): „;

  cin >> n;

  cout << „Introduceti valoarea lui k (1 <= k <= n – 2): „;

  cin >> k;

  int a[n];

  cout << „Introduceti elementele vectorului:\n”;

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

    cin >> a[i];

  }

  // Rearanjarea elementelor vectorului

  for (int i = 0; i < n/2; i += 2) {

    int temp = a[i];

    a[i] = a[n-2-i];

    a[n-2-i] = temp;

    temp = a[i+1];

    a[i+1] = a[n-1-i];

    a[n-1-i] = temp;

  }

  // Afisarea vectorului rearanjat

  cout << „Vectorul rearanjat dupa regulile date este:\n”;

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

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

  }

  return 0;

}

Similar Posts

Lasă un răspuns

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