Cerința
Scrieţi definiţia completă a subprogramului C++ aranjare, care are doi parametri, v şi n, prin care primeşte un tablou unidimensional cu maximum 10000 de numere naturale nenule şi, respectiv, numărul de elemente din tablou. Subprogramul rearanjează elementele tabloului astfel încât toate valorile impare să se afle pe primele poziţii, iar valorile pare în continuarea celor impare. Ordinea în cadrul secvenţei de elemente pare, respectiv în cadrul secvenţei de elemente impare, poate fi oricare.
Restricții și precizări
1 ≤ n ≤ 10000
numele subprogramului este aranjare
parametrii sunt, în această ordine: v, n
fiecare element al vectorului este un număr natural din intervalul [1,105][1,105]
elementele vectorului v sunt indexate de la 0
Exemplu
Pentru n=7 şi v=(21, 37, 42, 7, 48, 25, 9), după apel, elementele vectorului ar putea fi (21, 37, 7, 25, 9, 42, 48).
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
1
void aranjare(int v[], int n)
{
int i, j, k1 = 0, k2 = 0, x, v1[10005], v2[10005];
for(j = 0; j < n; j ++)
{
x = v[j];
if(x % 2 == 1) v1[k1 ++] = x;
else v2[k2 ++] = x;
}
for(j = 0; j < k1; j ++)
v[j] = v1[j];
for(j = k1; j < n; j ++)
v[j] = v2[j - k1];
return;
}
{
int i, j, k1 = 0, k2 = 0, x, v1[10005], v2[10005];
for(j = 0; j < n; j ++)
{
x = v[j];
if(x % 2 == 1) v1[k1 ++] = x;
else v2[k2 ++] = x;
}
for(j = 0; j < k1; j ++)
v[j] = v1[j];
for(j = k1; j < n; j ++)
v[j] = v2[j - k1];
return;
}
Ioana760:
Mulțumesc!
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Studii sociale,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă