Răspuns :
Mai jos rezolvarea in 2 moduri in C++
I. cu instructiunea for
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
double x, maxi = -100000, mini = 100000;
for (int i = 1; i <= n; ++i)
{
cin >> x;
if (x >= maxi)
{
maxi = x;
}
if (x <= mini)
{
mini = x;
}
}
cout << maxi << " " << mini;
return 0;
}
II. cu instructiunea while (exact la fel, doar ca inlocuiesti for-ul cu while)
#include <iostream>
using namespace std;
int main()
{
int n, i = 1;
cin >> n;
double x, maxi = -100000, mini = 100000;
while (i <= n)
{
cin >> x;
if (x >= maxi)
{
maxi = x;
}
if (x <= mini)
{
mini = x;
}
i++;
}
cout << maxi << " " << mini;
return 0;
}
► SOLUTIE FOR :
#include <iostream>
#include <float.h>
using namespace std;
int main() {
int n;
double curent;
double mx = -DBL_MAX;
double mn = DBL_MAX;
//Citire dimensiune sir elemente
cout << "Introduceti numarul de elemente : ";
cin >> n;
if (n == 0) {
cout << "Sirul nu poate fi vid !";
return 0;
}
cout << "Introduceti elementele : ";
for (int i = 0; i < n; i++) {
//Citeste valoarea curenta
cin >> curent;
//Actualizeaza minim si maxim daca e nevoie
if (curent > mx) mx = curent;
if (curent < mn) mn = curent;
}
//Afisare rezultat
cout << "\nMinim : " << mn;
cout << "\nMaxim : " << mx;
return 0;
}
► SOLUTIE WHILE :
#include <iostream>
#include <float.h>
using namespace std;
int main() {
int n;
int i = 0;
double curent;
double mx = -DBL_MAX;
double mn = DBL_MAX;
//Citire dimensiune sir elemente
cout << "Introduceti numarul de elemente : ";
cin >> n;
if (n == 0) {
cout << "Sirul nu poate fi vid !";
return 0;
}
cout << "Introduceti elementele : ";
while (i<n) {
//Citeste valoarea curenta
cin >> curent;
//Actualizeaza minim si maxim daca e nevoie
if (curent > mx) mx = curent;
if (curent < mn) mn = curent;
//Incrementeaza numarul de elemente citite
i++;
}
//Afisare rezultat
cout << "\nMinim : " << mn;
cout << "\nMaxim : " << mx;
return 0;
}
► Explicatie :
Deoarece e nevoie sa trecem prin sirul de valori o singura data nu e necesar sa memoram sirul de numere. Citim fiecare valoare si determinam daca trebuie actualizat minim/maxim sau nu.
Initializam valoarea minima si valoarea maxima cu cel mai mare numar reprezentabil in C++ pentru tipul double, respectiv cel mai mic numar reprezentabil in C++ pentru tipul double.
Numarul DBL_MAX e o constanta declarata in fisierul header float.h care retine cel mai mare numar care poate fi retinut intr-un double. Intervalele sunt simetrice pentru plus si minus, din acest motiv -DBL_MAX e cel mai mic numar care poate fi retinut.
Alternativ puteam initializa minimul si maximul cu primul element din sir.
► Amintim :
Toate instructiunile repetitive (FOR, WHILE, DO...WHILE) sunt echivalente si se poate transforma dintr-o forma in alta fara prea mari batai de cap.

Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!