Buna!
Ma poate ajuta cineva cu problema aceasta?
#2721 Insert
Această problemă acceptă numai soluții în C++.
Clasa a 10-a Subprograme Subprograme care prelucrează tablouri unidimensionale Insert
Etichete: Inserare in tablou
Să se scrie funcția cu următorul antet:
view sourceprint?
1.
void Insert(int a[], int &n)
Funcția primește ca parametri un vector a de numere naturale și n – numărul elementelor vectorului. Să se insereze după fiecare număr impar dublul său.
Restricții și precizări
după inserarea de elemente, este garantat că n va avea lungimea cel mult 800.000
inițial vectorul are cel puțin un element
0 ≤ a[i] ≤ 1.000.000, pentru orice i=0,n-1.
vectorul este indexat de la 0 la n-1
este garantat că vectorul a va putea memora în final toate elementele inițiale și cele inserate
Exemplu
Dacă n = 5 și a = (22,5,7,8,11), atunci Insert(a, n) trebuie să obțină n = 8 și a = (22,5,10,7,14,8,11,22)
Important
Soluţia propusă va conţine definiţia funcţiei cerute. 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.
Multumesc!
Răspunsuri la întrebare
Răspuns de
1
void Insert(int a[], int &n){
int k = 0;
for(int i = 0; i < n; i++){
if(a[i] % 2 == 1){
k++;
}
}
n += k;
for(int i = n - 1; i >= 0; i--){
if(a[i-k] % 2 == 1){
a[i] = a[i-k] * 2;
i--;
k--;
}
a[i] = a[i-k];
}
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă