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:
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:
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!