Realizați un program care, pentru un șir de n numere întregi citit de la tastatură, determină cele mai mici două elemente ale șirului. Acestea vor fi afișate pe un rând de ecran, în ordine descrescătoare, cu un spațiu între ele.
În C++ vă rog.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, a[100];
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
int min1 = a[0];
int min2 = a[1];
for (int i = 2; i < n; i++)
{
if (a[i] < min1)
min1 = a[i];
else if (a[i] < min2 && a[i] > min1)
min2 = a[i];
}
if (min1 >= min2)
cout << min1 << " " << min2;
else
cout << min2 << " " << min1;
}
Explicație:
consideri min1 = a[0] // primul element din sir
min2 = a[1] // al doilea element din sir
parcurgi sirul incepand de la a[2] (a[0] si a[1] deja au fost folosite la min)
si daca a[i] este mai mic decat min1, min1 = a[i]
daca e mai mic decat min2 dar mai mare decat min1, inseamna ca e al doilea element mic din sir, deci min2 = a[i]
Dupa verifici care e mai mare pt a le afisa in ordine descrescatoare
Răspuns:
Raspuns (cred)
Explicație:
#include <iostream>
using namespace std;
int main()
{
int s[100];
int n,i,j,g,h;
cin>>n;
for(i=1;i<=n;i++)
cin>>s[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(s[i]>=s[j])
{
g=s[i];
s[i]=s[j];
s[j]=g;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(s[i]>s[j])
{
h=s[i];
s[i]=s[j];
s[j]=h;
}
cout<<h<<' '<<g;
return 0;
}
IN: 3
1 3 2
OUT: 2 1