Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Inversarea unui vector în C++

Dându-se un șir de n numere naturale, să se inverseze elementele sale (să se oglindească șirul).

Exemplu: Pentru șirul a = (1, 2, 6, 19, 4) cu lungimea n = 5, se afișează inversul 4, 19, 6, 2, 1.

Cum se inversează un vector în C++

Să zicem că șirul nostru are lungimea n. Atunci, pentru a inversa vectorul, trebuie ca:

  • elementele a[1] și a[n] să se interschimbe;
  • elementele a[2] și a[n - 1] să se interschimbe;
  • elementele a[3] și a[n - 2] să se interschimbe;

Algoritmul de inversare a unui tablou unidimensional

Vom proceda astfel: ne creăm doi indici, i și j, inițial egali cu 1, respectiv cu n. La fiecare pas, interschimbăm elementele a[i] și a[j], incrementăm i (i++) și decrementăm j (j--). Astfel, valorile lui i și j vor fi exact cele de mai sus (1, n; 2, n - 1; 3, n - 2; …). Ne oprim atunci când i ≥ j, adică la jumătatea șirului (ca să nu interschimbăm de două ori elementele).

Implementarea C++ este următoarea:

#include <iostream>

using namespace std;

int main()
{
    //Declarăm și citim vectorul
    int n, a[101];
    cin >> n; //n = lungimea vectorului a
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }

    int i = 1, j = n;
    while(i <= j) {
        //Interschimbăm a[i] și a[j]
        int aux = a[i];
        a[i] = a[j];
        a[j] = aux;

        //Trecem la următoarele elemente: a[i + 1] și a[j - 1]
        i++;
        j--;
    }
    return 0;
}

Alte resurse sau bibliografie

Cuprinsul lecției

Se încarcă…

Citește și

Căutare binară în C++Al N-lea termen Fibonacci în C++Vectori de frecvență (de apariții) în C++Oglinditul unui număr în C++Vectorii în C++: citire și afișareInstrucțiunea for (structuri repetitive)Cum să calculezi instant 2 la puterea N în C++Ce este o funcție void în C++?Indicatorul lui Euler în C++Distanța dintre două puncte în C++Numărul de cifre ale factorialului unui numărVerifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Maximul și minimul unui vector în C++Numărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Vectorii în C++: declarare și parcurgereNumărul de apariții al unui număr într-un vector în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăRădăcina cubică a unui număr în C++ (cube root)Ce înseamnă variabilă globală și locală în C++?Verificare dacă șir de caractere este palindrom în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiCifrele unui număr. Prelucrarea cifrelor unui număr în C++Funcții în C++. Ce sunt subprogrameleVerifică dacă un număr aparține șirului Fibonacci în C++Cel mai mic număr cu suma cifrelor N în C++Transformarea unei litere mici în literă mare în C++Cea mai lungă secvență de elemente crescătoare în C++Citirea și afișarea matricelor în C++Complexitatea unui algoritm (timp și spațiu) în C++Verifică dacă un caracter este cifră în C++Cel mai puțin semnificativ bit în C++Inversarea unui șir de caractere în C++Transformarea unui număr din baza 2 în baza 10 în C++Generarea șirului Fibonacci generalizat în C++Al N-lea termen dintr-o progresie aritmeticăVerificarea unui an bisect în C++Structuri repetitive (while, do while, for, etc)Recursivitate în C++Al N-lea termen dintr-o progresie geometricăRadicalul unui număr în C++ (rădăcina pătrată)Cifra maximă și minimă a unui număr în C++De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Verificare dacă un număr este palindrom în C++Câte numere naturale sunt într-un interval dat? (C++)Numărul permutărilor în C++ (formula permutărilor)Aflarea sumei primelor N sume GaussIndicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleMatrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicVerifică dacă o literă este vocală în C++Valoarea absolută (modulul) unui număr în C++Numărul de divizori primi ai unui număr în C++CMMMC a două numere în C++ (cel mai mic multiplu comun)Citește un șir de caractere cu spații în C++Aria și circumferința unui cerc în C++Interclasarea a doi vectori în C++Cum să citești și să afișezi în fișiere în C++CMMDC recursiv a două numere naturale în C++Numărul minim de peroane pentru o gară în C++Verifică dacă trei puncte sunt coliniare C++Operații cu numere mari în C++ - Toate funcțiile explicateMaximul și minimul a n valori în C++Instrucțiunea while (structuri repetitive)Maximul și minimul a două valori în C++Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortInstrucțiunea do while (structuri repetitive)Tipul struct în C++. Ce sunt structurile de date neomogenePrima cifră a unui număr în C++Suma numerelor naturale dintr-un interval dat în C++Ciurul lui Eratostene în C++Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Transformarea unei litere mari în literă mică în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Ce înseamnă endl în C++?Cel mai semnificativ bit în C++Do while vs while în C++ - Care e diferența?Suma elementelor unui vector recursiv în C++Transformarea unui număr din baza 10 în baza 2 în C++Copiuțe: Cifrele unui numărNumărul aranjamentelor în C++ (formula aranjamentelor)Cum să afișezi partea întreagă a unui număr real în C++Matrice pătratice în C++. Diagonala principală și secundarăCel mai mare divizor comun (CMMDC) a două numere în C++Verifică dacă un număr dat este o putere de 2 în C++Suma divizorilor unui număr în C++Divide et Impera (metodă de programare C++)Află secolul unui an citit de la tastatură în C++Mediana unui șir de valori în C++Șiruri de caractere în C++. Tot ce trebuie să știiCombinatorică în C++: permutări, aranjamente, combinări și alteleCifra de control a unui numărPointer în C++. Variabile de tipul char * (char steluță)Tipuri de date în C++: numere întregi, reale, caractere și alteleInversarea unui vector în C++Ce este o variabilă unsigned în C++?Numere triunghiulare. Verificarea unui număr triunghiularAfișarea elementelor unui vector recursiv în C++Verifică dacă un număr este par sau impar fără modulo în C++Factorialul unui număr în C++Verifică dacă un caracter este literă în C++Verifică dacă o literă este mică sau mare în C++Verificare număr prim în C++ (Clasa a IX-a)Bordarea unei matrice în C++Instrucțiunea break (structuri repetitive)Comentarii în C++Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorNumărul combinărilor în C++ (formula combinărilor)Funcții predefinite în C++ (matematice, șiruri de caractere)Șirul lui Fibonacci în C++Cel mai frecvent element dintr-un șir în C++Calculul combinărilor de n luate câte k (nCk) în C++Instrucțiunea continue (structuri repetitive)Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Aria unui triunghi folosind coordonatele acestora în C++Cifra maximă a unui număr recursiv în C++Instrucțiunea de decizie în C++: if, else, switch, caseNumărul de divizori al unui număr în C++Suma 1 + 2 + 3 + ... + N în C++Codul ASCII (tabel complet)Algoritm recursiv pentru căutare binară (clasa a X-a)Oglinditul recursiv al unui număr în C++Maximul și minimul a trei valori în C++Interschimbarea a două variabile în C++ (3 metode)Afișarea divizorilor primi ai unui număr în C++

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont