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
rezolvare in C++ URGENT
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int main(){
int n, sirIn[1001], Result[1001], NrPar=0, NrImpar=0;
cin >> n;
for (int i=1;i<=n;i++) cin >> sirIn[i];
for (int i=1;i<=n;i++){
if (sirIn[i]%2 == 0){
NrPar++;
int Destin=NrPar;
for (int j=NrPar-1; j>0; j--) {
if (Result[j] > sirIn[i]){
Result[j+1] = Result[j];
Destin=j;
} else {
Destin=j+1;
break;
}
}
Result[Destin]=sirIn[i];
}
}
for (int i=1;i<=n;i++){
if (sirIn[i]%2 != 0){
NrImpar++;
int Destin=NrPar+NrImpar;
for (int j=NrPar+NrImpar-1; j>NrPar; j--) {
if (Result[j] > sirIn[i]){
Result[j+1] = Result[j];
Destin=j;
} else {
Destin=j+1;
break;
}
}
Result[Destin]=sirIn[i];
}
}
for (int i=1;i<=NrPar+NrImpar; i++) cout << Result[i];
return 0;
}
using namespace std;
int main(){
int n, sirIn[1001], Result[1001], NrPar=0, NrImpar=0;
cin >> n;
for (int i=1;i<=n;i++) cin >> sirIn[i];
for (int i=1;i<=n;i++){
if (sirIn[i]%2 == 0){
NrPar++;
int Destin=NrPar;
for (int j=NrPar-1; j>0; j--) {
if (Result[j] > sirIn[i]){
Result[j+1] = Result[j];
Destin=j;
} else {
Destin=j+1;
break;
}
}
Result[Destin]=sirIn[i];
}
}
for (int i=1;i<=n;i++){
if (sirIn[i]%2 != 0){
NrImpar++;
int Destin=NrPar+NrImpar;
for (int j=NrPar+NrImpar-1; j>NrPar; j--) {
if (Result[j] > sirIn[i]){
Result[j+1] = Result[j];
Destin=j;
} else {
Destin=j+1;
break;
}
}
Result[Destin]=sirIn[i];
}
}
for (int i=1;i<=NrPar+NrImpar; i++) cout << Result[i];
return 0;
}
NuPotSaStiuTot:
gresit: par nu sunt invers: schimb > in < in 1° parte
Alte întrebări interesante
Studii sociale,
8 ani în urmă
Matematică,
8 ani în urmă
Ed. tehnologică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă