Salutare, nu pot face nicicum problema asta. am scris un cod, dar nu functioneaza :(
#159 inserareDupa
Se dă un șir cu n elemente naturale.
Cerinţa
Să se insereze în șir după fiecare element par dublul său.
Date de intrare
Programul va citi de la tastatură numărul n, apoi n numere naturale reprezentând elementele șirului.
Date de ieşire
Programul va afișa pe ecran elementele șirului obținut după inserare, separate printr-un spațiu.
Restricţii şi precizări
1 ≤ n ≤ 25
elementele șirului vor fi cuprinse între 0 și 1.000.000
Exemplu
Date de intrare
5
7 3 4 1 6
Date de ieșire
7 3 4 8 1 6 12
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int main(){
int n, i, k=0;
cin>>n;
int v[n*2];
for(i=0;i<n;i++){
cin>>v[k]; //Stocam separat in variabila k pe la cat am ajuns cu stocarea
//Daca termenul introdus este par, sarim peste un spatiu, si inseram dupa el
if(v[k]%2==0)
k++;
k++;
}
//Acum facem din nou un for si completam spatiile goale cu dublul nr pare
for(i=0;i<k;i++){
//Cautam iarasi elementele pare
if(v[i]%2==0){
v[i+1]=v[i]*2; //Introducem in urmatorul element dublul
i++; //Incrementam i ca sa sarim peste urmatorul element
}
}
for(i=0;i<k;i++){
cout<<v[i]<<" ";
}
return 0;
}
O altă viziune de rezolvare:
#include <iostream>
using namespace std;
int a[51];
int main()
{
int n, i, num;
cin >> n;
for (i=1; i<=n; ++i)
{
cin >> num;
if (num%2==0) { a[i]=num; ++i; a[i]=2*num; ++n; }
else a[i]=num;
}
for (i=1; i<=n; ++i)
cout << a[i] << " ";
return 0;
}