fbpx

Problema #808 – Mutare – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Scrieţi definiția completă a subprogramului C++ sub care are 3 parametri: n – prin care primește un număr natural, v, prin care primeşte un tablou unidimensional cu n elemente, numere naturale cu cel mult 4 cifre și x, prin care primeşte un număr natural. Cel puțin un element al tabloului v are valoarea x.

Subprogramul modifică ordinea valorilor din tablou, astfel încât toate valorile egale cu x să ocupe primele poziţii din v, iar celelalte valori să se regăsească în continuarea acestora, în ordinea inițială. Tabloul modificat este furnizat tot prin parametrul v.

Restricţii şi precizări

  • 2<n<50
  • numele subprogramului cerut este sub
  • parametrii sunt, în această ordine: n, v, x
  • elementele tabloului v sunt indexate de la zero

Exemplu

Dacă n=9, v=(2, 1, 0, 1, 7, 0, 1, 4, 5) şi x=1, atunci, după apel, v=(1, 1, 1, 2, 0, 7, 0, 4, 5).

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.

void sub(int n, int v[], int x){
    int a[61], ind = 0;
    for(int i = 0; i < n; ++i)
        if(v[i] == x)
            a[++ind] = x;
    for(int i = 0; i < n; ++i)
        if(v[i] != x)
            a[++ind] = v[i];
    for(int i = 1; i <= ind; ++i)
        v[i-1] = a[i];
}
Comentarii

S-ar putea sa iti placa