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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!