Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Se citesc de la tastatură numere întregi pozitive atâta timp cât suma lor nu depăşeşte 1000. Să se scrie un program care să afişeze cea mai mică şi cea mai mare valoare a acestor numere. Exemplu: 550 345 100 45 Date de ieşire max=550 min=100.


blindseeker90: In ce limbaj vrei sa fie programul? Si vrei ceva mai sofisticat sau ceva simplu?
blindseeker90: E complicat sa iti trimit codul fara sa-ti explic modul in care l-am gandit, o sa-ti trimit fisierul Daca nu intelegi ceva, sa imi spui
angelicus: cum vrei, cu "while" sau cu "for"?

Răspunsuri la întrebare

Răspuns de blindseeker90
1
Iau maximul drept 0 pentru ca orice numar din secventa este mai mare ca el si atunci poate pastra valoarea cea mai mare la final, iar min este initializat cu 1000 pentru ca orice numar este mai mic decat 1000 deci poate fi pastrat minimul

Am facut si un if break pentru a testa daca suma a ajuns la o valoare peste 1000, si atunci se intrerupe
Da am facut cu while(1) ruleaza mereu pana cand este incalcata conditia din if si atunci dau break
Anexe:

blindseeker90: Programul functioneaza in felul urmator.
blindseeker90: min=1000, max=0. Sa zicem ca introduci numarul n=200 Este 200 mai mic decat min? Da, deci min=200. Apoi este n=200 mai mare ca max=0? Da, deci max=200. Este sum=0+200=200>1000? Nu, atunci continua. Introduci acum sa zicem n=300 Este n<min=200. Nu, pentru ca n=300, deci min ramane min=200. este n=300 mai mare decat max=200? Da este, deci max devine max=n=300. suma devine sum=200+300=500 care este mai mic decat 1000, deci continua algoritmul. in acest moment min=200 si max=300, si asa face
Răspuns de angelicus
2
#include <iostream.h>
int main()
{
int n, suma=0, min, max;
  cin>>n;
    max=min=n; suma+=n;

    while (suma<1000)
    {
        cin>>n; suma+=n;
           if (n<min && suma<1000) min=n;
              if (n>max && suma<1000) max=n;
    }
if (max>1000) cout>>"Ati introdus un singur numar valoarea caruia depaseste 1000";
  else
   {
     cout<<"Cea mai mica valoare este "<<min<<endl;
     cout<<"Cea mai mare valoare este "<<max<<endl;
   }
return 0;
}

angelicus: fa un refresh, am modificat ptu cazul in care se introduce un singur numar mai mare decat 1000
angelicus: poate mai tarziu, is un pic ocupat :D
angelicus: insa e cod usor, poate incerci sa-ti dai seama singura :))
Alte întrebări interesante