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.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
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
.
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;
}