Se dau 5 numere distincte. Să se determine suma celor mai mari 3 dintre ele. C ++
Răspunsuri la întrebare
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.
Nu trebuie for-ul asta sa se termine la i?
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: