Formați doi vectori astfel încât primul să conțină numerele pare din vectorul inițial și al doilea numerele impare din vector. Ordonați cei doi vectori obținuți crescător.
Cu subprogram in C++.​


Răspuns :

#include <iostream>

using namespace std;

int V[100], n; //n va retine nr de elem din V

void citire ()

{

cin >> n;

for (int i = 1; i <= n; i ++) cin >> V[i];

}

void v (int v[100], int k, int &m) //se va folosi si pt v1 si pt v2

{

int j = 0;

for (int i = 1; i <= n; i++)

if (V[i] % 2 == k) {

j ++;

v[j] = V[i];

m = j; //in m se retine nr de elem din vec v

}

}

void ordonare_cresc (int v[100], int m)

{

for (int i = 1; i <= m - 1; i++) //sortare prin interschimbare

for (int j = i + 1; j <= m; j++)

if (v[i] > v[j]) {

int aux = v[i];

v[i] = v[j];

v[j] = aux;

}

}

void afisare (int v[100], int m)

{

for (int i = 1; i <= m; i ++) cout << v[i] << " ";

cout << endl;

}

int main () //program principal

{

int v1[100], v2[100], m1, m2;

citire ();

v (v1, 0, m1); //restul 0 la imp la 2

v (v2, 1, m2); //restul 1 la imp cu 2

ordonare_cresc (v1, m1);

ordonare_cresc (v2, m2);

afisare (v1, m1);

afisare (v2, m2);

}

Vezi imaginea OiLoveYouO