Informatică, întrebare adresată de ladyOM, 8 ani în urmă

Salut! Pentru cerinta urmatoare am gasit programul de mai jos. Imi puteti explica, va rog, cum functioneaza programul de mai jos? Am inteles ca se face minimul celor cinci numere si apoi nu inteleg de ce se testeaza ca numerele sa fie echivalente cu m, dupa care li se artibuie valoarea 100001 si apoi se testeaza din nou ca numerele sa fie mai mici ca m.
Se dau 5 numere distincte. Să se determine suma celor mai mari 3 dintre ele.
Programul citește de la tastatură 5 numere naturale.
Programul va afișa pe ecran numărul cerut.
cele 5 numere naturale sunt distincte, cuprinse între 1 și 10000, inclusiv
1 5 2 3 100
108
#include 
using namespace std;
int a, b, c, d, e, s, minim;
int main() {
    cin>>a>>b>>c>>d>>e;
    s = a+b+c+d+e;
    minim = a;
    if (b < minim)
        minim = b;
    if (c < minim)
        minim = c;
    if (d < minim)
        minim = d;
    if (e < minim)
        minim = e;
    s = s-minim;
    if (a == minim)
        a = 100001;
    if (b == minim)
        b =100001;
    if (c == minim)
        c =100001;
    if (d == minim)
        d =100001;
    if (e == minim)
        e =100001;
    minim = a;
    if (b < minim)
        minim = b;
    if (c < minim)
        minim = c;
    if (d < minim)
        minim = d;
    if (e < minim)
        minim = e;
    s = s-minim;
cout< return 0;}


Porecla0987: E o varianta urata de a-l face, dar uite cum functioneaza:
Aduna toate cele 5 numere apoi le scade pe cele mai mici 2 numere, rezultatul fiind suma celor mai mari 3 numere (daca nu intelegi de ce, intreaba profesorul de matematica).
Porecla0987: Prima serie de if-uri cauta cel mai mic numar si-l scade din suma. A doua serie de if-uri cauta minimul (cel care a fost scazut din suma) si il initializeaza la 10001, ca sa nu-l gaseasca cand va cauta celalalt numar care trebuie scazut. Valoarea este 10001 pentru ca valoarea maxima posibila a numerelor este 10000. A treia serie de if-uri cauta cel mai mic numar ramas si-l scade din suma, apoi afiseaza suma.

Răspunsuri la întrebare

Răspuns de Porecla0987
1

E o varianta urata de a-l face, dar uite cum functioneaza:

Aduna toate cele 5 numere apoi le scade pe cele mai mici 2 numere, rezultatul fiind suma celor mai mari 3 numere (daca nu intelegi de ce, intreaba profesorul de matematica).

Prima serie de if-uri cauta cel mai mic numar si-l scade din suma. A doua serie de if-uri cauta minimul (cel care a fost scazut din suma) si il initializeaza la 10001, ca sa nu-l gaseasca cand va cauta celalalt numar care trebuie scazut. Valoarea este 10001 pentru ca valoarea maxima posibila a numerelor este 10000. A treia serie de if-uri cauta cel mai mic numar ramas si-l scade din suma, apoi afiseaza suma.


ladyOM: Multumesc!
Alte întrebări interesante