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

1. Se citeste un sir de n numere naturale. Afisati cele mai mici 2 elemente din sir.
2. Se citeste un sir de n numere naturale. Afisati cele mai mari 3 elemente din sir printr-o singura parcurgere a sirului.
VA ROG, DAU MULTE PUNCTE!!

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

*********** doua minime *******

#include <iostream>

using namespace std;

int main()

{

   int a,b,c,m1,m2, i, n;

   cin >> n;

   cin >> a >> b;

   m1=min(a,b); m2=max(a,b);

   for (i=3; i<=n; ++i)

   {

       cin >> c;

       if (c<m1)

       {

           m2=m1;

           m1=c;

       }

       else

       {

           if (c<m2) m2=c;

       }

   }

   cout << m1 << " " << m2;

   return 0;

}

Explicație:

------------- trei maxime --------------

#include <iostream>

using namespace std;

int main()

{

   int a,b,c,max1,max2,max3,i,n;

   cin >> n;

   cin >> a >> b;

   max1=min(a,b); max2=max(a,b);

   cin >> c;

   if (c>max2) max3=c;

   else

   {

        if (c>max1)

        {

            max3=max2; max2=c;

        }

        else

        {

            max3=max2; max2=max1; max1=c;

        }

   }

   for (i=4; i<=n; ++i)

   {

       cin >> c;

       if (c>max3)

       {

           max1=max2; max2=max3; max3=c;

       }

       else

       {

           if (c>max2)

           {

               max1=max2; max2=c;

           }

           else

           {

               if (c>max1) max1=c;

           }

       }

   }

   cout << max1 << " " << max2 << " " << max3;

   return 0;

}


dianadianadia: Multumesc enorm, am inteles!
boiustef: mă bucur... asta e foarte important, să înţelegi... Succese!
Alte întrebări interesante