Informatică, întrebare adresată de wawawa15, 8 ani în urmă

2594
Cerința
Se citește un număr natural n și un șir de n numere întregi. Să se aranjeze elementele astfel încât în prima parte a șirului să fie valorile pare în ordine crescătoare, iar în partea a doua valorile impare, de asemenea în ordine crescătoare.

Date de intrare
Programul citește de la tastatură numărul n și apoi cele n elemente ale șirului.

Date de ieșire
Programul afișează pe ecran elementele șirului după prelucrare cu spații intre ele.

Restricții și precizări
1 ≤ n ≤ 1000
cele n numere pot fi reprezentate pe 32 de biți cu semn.

Exemplu
Intrare

10
5 4 3 2 1 6 7 8 9 18
Ieșire

2 4 6 8 18 1 3 5 7 9

Răspunsuri la întrebare

Răspuns de boiustef
6

Răspuns:

#include <iostream>

using namespace std;

int v[1001],i,j,par=-1,imp,n,t,num;

int main()

{

   cin >> n;

   imp=n;

   for (i=0; i<n; i++)

   {

       cin >> num;

       if (num%2==0)

       {

           v[++par]=num;

       }

       else

       {

           v[--imp]=num;

       }

   }

   for (i=0; i<par; i++)

   {

       for (j=i+1; j<=par; j++)

       {

           if (v[j]<v[i]) swap(v[i],v[j]);

       }

   }

   for (i=imp; i<n-1; i++)

   {

       for (j=i+1; j<n; j++)

       {

           if (v[j]<v[i]) swap(v[i],v[j]);

       }

   }

   for (i=0; i<n; i++)

       cout << v[i] << " ";

   return 0;

}

Explicație:

Alte întrebări interesante