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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!