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 :
5
1 8 7 4 5
Date de iesire:
8 4 5 7 1
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
using namespace std;
int main()
{
int n; cin >> n;
int sir[n];
int pare = 0;
for(int i = 0; i < n; i++)
{
cin>>sir[i];
pare += (1 - sir[i] % 2);
}
int pareVec[pare];
int impareVec[n - pare];
int p1 = 0, p2 = 0;
for(int i = 0; i < n; i++)
{
if(sir[i] % 2 == 0)pareVec[p1++] = sir[i];
else impareVec[p2++] = sir[i];
}
for(int i = 0; i < n; i++)
{
if(i < pare)
cout << pareVec[i];
else
cout << impareVec[--p2];
}
}
using namespace std;
int main()
{
int n; cin >> n;
int sir[n];
int pare = 0;
for(int i = 0; i < n; i++)
{
cin>>sir[i];
pare += (1 - sir[i] % 2);
}
int pareVec[pare];
int impareVec[n - pare];
int p1 = 0, p2 = 0;
for(int i = 0; i < n; i++)
{
if(sir[i] % 2 == 0)pareVec[p1++] = sir[i];
else impareVec[p2++] = sir[i];
}
for(int i = 0; i < n; i++)
{
if(i < pare)
cout << pareVec[i];
else
cout << impareVec[--p2];
}
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă