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

salut cum modific programul de mai jos sa imi afiseze 2 valori cele mai mari din sir printr- o singura parcurgere a sirului nu numai unul cum l-am facut ,si respectiv 3 valori
#include

using namespace std;

int main(){
int a[20], nr, i;
cout << "Numarul de elemente din sirul a (maximum 20) ";
cin >> nr;
for (i = 0; i < nr; i++){
cout << "a[" << i << "] = ";
cin >> a[i];
}
int max;
max =a[0];
for(i=1; i< nr; i++)
{
if(max max=a[i];
}
cout<<"Elementele maxime din sir sunt:"< return 0;
}
merci

Răspunsuri la întrebare

Răspuns de stanstanel17
0

Răspuns:

Ia un "max2" care sa fie <= decat max si ai dpua valori din sir printr o singura parcurgere dar mai adaugi un "if".

Adaugi un if ori de cate ori mai vrei inca o valoarezz la urma poti face si o sortare;)

Explicație:

Răspuns de GufyPufy
0

Răspuns:

Buna! Ti-am modificat putin algoritmul astfel incat sa afiseze:

a) primele 2 cele mai mari valori:

#include<iostream>

using namespace std;

int main()

{

   int a[20], nr, i;

   cout << "Numarul de elemente din sirul a (maximum 20) ";

   cin >> nr;

   for (i = 0; i < nr; i++)

   {

       cout << "a[" << i << "] = ";

       cin >> a[i];

   }

   int maxi1, maxi2;

   maxi1=a[0];

   maxi2=a[0];

   for(i=1; i< nr; i++)

       if(maxi1<=a[i])

       {

           maxi2=maxi1;

           maxi1=a[i];

       }

   cout<<"Elementele maxime din sir sunt: "<<maxi1<<" si "<<maxi2;

   return 0;

}

b)primele 3 cele mai mari valori:

#include<iostream>

using namespace std;

int main()

{

   int a[20], nr, i;

   cout << "Numarul de elemente din sirul a (maximum 20) ";

   cin >> nr;

   for (i = 0; i < nr; i++)

   {

       cout << "a[" << i << "] = ";

       cin >> a[i];

   }

   int maxi1, maxi2, maxi3;

   maxi1=a[0];

   maxi2=a[0];

   maxi3=a[0];

   for(i=1; i< nr; i++)

       if(maxi1<=a[i])

       {

           maxi3=maxi2;

           maxi2=maxi1;

           maxi1=a[i];

       }

   cout<<"Elementele maxime din sir sunt: "<<maxi1<<", "<<maxi2<<" si "<<maxi3;

   return 0;

}

Explicație:

Sper ca te-am ajutat! Mult succes!


ralucamuresan2001: Mulțumesc mult pentru ajutor
ralucamuresan2001: imi da eroare la maxi2
ralucamuresan2001: si afiseaza doar o valoare
GufyPufy: Esti sigura ca ai copiat bine algoritmul?
GufyPufy: Eu l-am mai verificat acum o data si e totul ok
ralucamuresan2001: eu folosesc code blocks
ralucamuresan2001: merge programul dar arata tot o valoare nu 2
Alte întrebări interesante