Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n,i, v[100], minpar, poz, k=0, vp[100], gasit=0;
cin >> n;
for (i=0; i<n; i++) cin >> v[i];
int terminat=0, ind=0;
while (!terminat)
{
i=ind;
while (i<n && v[i]%2==1) ++i;
if (i==n) { terminat=1; }
else
{
ind=i; terminat=0;
minpar=v[i]; poz=i; gasit=1;
for (int j=ind; j<n; j++)
{
if (v[j]%2==0 && v[j]<minpar) {minpar=v[j]; poz=j; }
}
v[poz]=1; vp[k++]=minpar;
}
}
if (!gasit) cout << "nu are pare";
else
{
cout << "parele ordonate crescator: " << endl;
for (i=0; i<k; i++)
cout << vp[i] << " ";
}
return 0;
}
Explicație:
sper să fie înţeles. Prin ind memorizez primul par din şir. Actualizez pe parmin cu primul par. La o parcurgere a vectorului v, găsesc parmin şi poziţia lui. La finalul parcurgerii, memorizez parmin în vectorul cu pare, elementul care a fost cel mai mic par îi dau 1, pentru nu a fi cercetat repetat.
Repet iară căutarea primului par dar nu de la 0, ci de la ind memorizat anterior. Dacă apar întrebări... le dai... succese în cercetare!
Evident vectorul iniţial se modifică, dar cred asta nu importă.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.