Maximul și minimul unui vector în C++

Se dă un șir de numere naturale a de lungime n și se cere determinarea maximului și a minimului acestui vector.

Exemplu: pentru șirul a = (3, 9, 43, 10, 3) de lungime n = 5, maximul este 43, iar minimul este 3.

Algoritmul pentru determinarea minimului și maximului

Vom vorbi despre algoritmul care calculează maximul unui șir, deoarece cel de calculare a minimului este foarte similar.

Algoritmul funcționează astfel: creăm o variabilă numită maxim, care să rețină maximul din șirul nostru a.

Variabila maxim va avea ca valoare de început cea mai mică valoare posibilă: mai precis, dacă vorbim de numere naturale, atunci maximul poate să ia valoarea 0, însă, dacă se lucrează cu numere întregi, valoarea de început ar trebui să fie minus două miliarde (aproximativ cea mai mică valoare a unui număr de tipul int; 9 zero-uri).

Parcurgem elementele vectorului pe rând (despre parcurgerea elementelor unui vector puteți urmări această lecție), iar pentru fiecare element în parte, verificăm dacă este sau nu mai mare decât maxim (altfel spus, dacă este sau nu mai mare decât maximul până în acel punct). Dacă da, înseamnă că am găsit un nou maxim, așadar variabila maxim preia valoarea elementului curent. În caz contrar, maximul nu se modifică și se trece mai departe.

Similar se procedează și pentru minim: variabila minim va avea ca valoare de început cel mai mare număr posibil, de exemplu, 2.000.000.000 (două miliarde, aproximativ cea mai mare valoare a unui număr de tipul int).

#include <iostream>

using namespace std;

int n, a[101]; //Vectorul nostru (a) și lungimea sa (n)
int minim = 2000000000, maxim = 0;

int main()
{
    //Citim n și vectorul de lungime n
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> a[i];

    //Calculăm maximul
    for(int i = 1; i <= n; i++) {
        if(a[i] > maxim) {
            maxim = a[i];
        }
    }

    //Calculăm minimul
    for(int i = 1; i <= n; i++) {
        if(a[i] < minim) {
            minim = a[i];
        }
    }

    //Afișăm cele două rezultate
    cout << maxim << " " << minim;
    return 0;
}

Alte resurse sau bibliografie

DS

Autorul acestei lecții

Dominic Satnoianu

Această lecție a fost redactată de către Dominic Satnoianu.

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.

Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te