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

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

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Cuprinsul lecției

Se încarcă…

Citește și

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

© 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