!!!!!URGENT!!!!!
Fiind dat un șir de N numere întregi pozitive, să se afișeze pe ecran numerele șirului inițial, cu următoarele modificări:
Numerele pare se vor afla pe primele poziții din șir, în ordine crescătoare a pozițiilor în șirul inițial.
Numerele impare se vor afla după numerele pare, în ordine descrescătoare a pozițiilor în șirul inițial.
Date de intrare
Se vor citi:
Un număr întreg N
Un șir de N numere întregi pozitive
Date de ieșire
Pe ecran se va afișa șirul modificat.
Restricții
N < 1000
Numerele din șir vor fi mai mici sau egale decât 1000
Exemplu
Date de intrare Date de ieșire
5
1 8 7 4 5 8 4 5 7 1
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int v[100];
int main()
{
int n, i, j;
cout << "n= "; cin >> n;
cout << "introdu " << n << " componente pozitive intregi: \n";
for (i=1; i<=n; ++i)
cin >> v[i];
int pareOrdonat=0;
while (pareOrdonat==0)
{
pareOrdonat=1;
for (i=1; i<n; ++i)
{
if (v[i]%2==1 && v[i+1]%2==0)
{
swap(v[i], v[i+1]);
pareOrdonat=0;
}
}
}
int k=0;
i=1;
while (v[i]%2==0)
{ ++k; ++i; }
j=0;
for (i=k+1; i<k+1+(n-k)/2; ++i)
{
++j;
swap(v[i], v[n+1-j]);
}
cout << " tabloul reordonat: \n";
for (i=1; i<=n; ++i)
cout << v[i] << " ";
return 0;
}