Informatică, întrebare adresată de sikesjack1, 9 ani în urmă

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

Răspuns de pmarian98
2

#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;

}

Răspuns de boiustef
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;

}

Alte întrebări interesante