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