Răspuns :
Răspuns:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, x, p; //n = n elemente, x = numere intregi, p = folosit pentru a schimba
//cifrele din lista intre ele
vector<int> lista1;
vector<int> lista2;
vector<int> lista3;
cout << "N: ";
cin >> n;
//ca sa pot incepe indexarea de la 1, adaug un 0 pe prima pozitie
//a fiecarei liste
lista1.push_back(0);
lista2.push_back(0);
lista3.push_back(0);
//populez listele
for(int i=0; i<n; i++)
{
cout << "=> ";
cin >> x;
lista1.push_back(x);
lista2.push_back(x);
lista3.push_back(x);
}
//ordonat crescator
for(int o=0; o<=n; o++)
{
for(int i=2; i<=n; i++)
{
if(lista1[i] < lista1[i-1])
{
p = lista1[i];
lista1[i] = lista1[i-1];
lista1[i-1] = p;
}
}
}
//pare inceput, impare final
for(int o=0; o<=n; o++)
{
for(int i=2; i<=n; i++)
{
if((lista2[i] % 2 == 0) && (lista2[i-1] % 2 > 0))
{
p = lista2[i];
lista2[i] = lista2[i-1];
lista2[i-1] = p;
}
}
}
//nr par = poz impara / nr impar = poz para
for(int i=1; i<=n; i++)
{
for(int j=i; j<=n; j++)
{
if((lista3[i] % 2 == 0) && (i % 2 == 0))
{
if(lista3[j] % 2 > 0)
{
p = lista3[i];
lista3[i] = lista3[j];
lista3[j] = p;
}
}
else if((lista3[i] % 2 > 0) && (i % 2 > 0))
{
if(lista3[j] % 2 == 0)
{
p = lista3[i];
lista3[i] = lista3[j];
lista3[j] = p;
}
}
}
}
//afiseaza rezultatul
cout << "1) ";
for(int i=1; i<=n; i++)
{
cout << lista1[i] << " ";
}
cout << endl;
cout << "2) ";
for(int i=1; i<=n; i++)
{
cout << lista2[i] << " ";
}
cout << endl;
cout << "3) ";
for(int i=1; i<=n; i++)
{
cout << lista3[i] << " ";
}
cout << endl;
return(0);
}
Explicație:
Am lasat comentarii.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.