fbpx

Problema #817 – Zero – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Scrieţi definiția completă a subprogramului C++ zero care are 2 parametri: n – prin care primește un număr natural și v, prin care primeşte un tablou unidimensional cu 2•n elemente, numere întregi cu cel mult 4 cifre. Numărul de elemente pare este egal cu numărul de elemente impare. Elementele au indici de la 1 la 2•n.

Subprogramul modifică tabloul astfel încât elementele impare să aibă indici impari, iar elementele pare să aibă indici pari. Tabloul modificat este furnizat tot prin parametrul v.

Restricţii şi precizări

  • 2<n<50
  • numele subprogramului cerut este zero
  • parametrii sunt, în această ordine: n, v

Exemplu

Dacă n=5 şi v=(4, 5, 0, 9, 10, 7, 15, 3, 8, 10), atunci după apel o soluție posibilă este v=(5, 4, 9, 0, 15, 10, 7, 8, 3, 10).

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 zero(int n, int a[]){
    int par[51], imp[51], ip = 0, ii = 0;
    for(int i = 1; i <= 2 * n; ++i)
        if(a[i] % 2 == 0)
            par[++ip] = a[i];
        else
            imp[++ii] = a[i];
    ip = 1;
    ii = 1;
    for(int i = 1; i <= 2 * n; ++i)
        if(i % 2 == 0)
            a[i] = par[ip], ip++;
        else
            a[i] = imp[ii], ii++;
}
Comentarii

S-ar putea sa iti placa