Informatică, întrebare adresată de romeoCSM, 9 ani în urmă

Se dau 5 numere distincte. Să se determine suma celor mai mari 3 dintre ele. C ++


boiustef: nu apliăm vectori?
boiustef: nu aplicăm???

Răspunsuri la întrebare

Răspuns de S0unds
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int a[5],aux,S=0;

   for(int i=0;i<5;i++)

   cin>>a[i];

   for(int i=0;i<5;i++)

   for(int j=0;j<5;j++)

   if(a[i]>a[j])

   {

       aux=a[i];

       a[i]=a[j];

       a[j]=aux;

   }

   for(int i=0;i<3;i++)

   S+=a[i];

   cout<<S;

}

Explicație:

Se sorteaza descrescator cele 5 numere citite printr-un vector apoi se insumeaza primele 3 numere, care sunt defapt cele mai mari.


CinevaFaraNume: for(int j=0;j<5;j++)
Nu trebuie for-ul asta sa se termine la i?
boiustef: da, cu sortarea nu e bine...
Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int a,b,c,d,e;

   cout << "Introdu 5 numere" << endl;

   cin >> a >> b >> c >> d >> e;

   bool sortat=0;

   int aux;

   while (!sortat)

   {

       sortat=1;

       if (a<b)

       {

           sortat=0;

           aux=a; a=b; b=aux;

       }

       if (b<c)

       {

           sortat=0;

           aux=b; b=c; c=aux;

       }

       if (c<d)

       {

           sortat=0;

           aux=c; c=d; d=aux;

       }

       if (d<e)

       {

           sortat=0;

           aux=d; d=e; e=aux;

       }

   }

   cout << "suma celor mai mari 3 din ele este " << a+b+c;

   return 0;

}

Explicație:


boiustef: ai şi o variantă fără vector, la fel cu sortare prin metoda bulelor
boiustef: în caz că încă nu cunoşti vectori... Succese şi o zi frumoasă!
Alte întrebări interesante