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

Scrieți definiția completă a subprogramului C++ ordon123 care are 2 parametri:

n – prin care primește un număr natural
a – prin care primește un tablou unidimensional cu n elemente, numere naturale din mulțimea {1,2,3}.
Subprogramul ordonează crescător tabloul a fără a returna valori.

Restricții și precizări
1 ≤ n ≤ 1.000.000
numele subprogramului cerut este ordon123
parametrii sunt, în această ordine: n, a
elementele tabloului a sunt indexate de la zero.
Exemplu:
Dacă n=6 și a=(3,1,2,1,3,1), după apelul subprogramului tabloul a devine (1,1,1,2,3,3).

Important
Soluția propusă va conține doar definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

Răspunsuri la întrebare

Răspuns de mocanualexandrp2ikb6
4

void ordon123(int n, int a[])

{

   int nr1=0,nr2=0,nr3=0,k=0;

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

   {

       if (a[i]==1) nr1++;

       if (a[i]==2) nr2++;

       if (a[i]==3) nr3++;

   }

   for (int i=1;i<=nr1;++i)

   {

       a[k]=1; k++;

   }

   for (int i=1;i<=nr2;++i)

   {

       a[k]=2; k++;

   }

   for (int i=1;i<=nr3;++i)

   {

       a[k]=3; k++;

   }

}

Alte întrebări interesante