Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int suma_cifre(int x)
{
int copie=x, suma=0;
while(copie!=0)
{
suma=suma+copie%10;
copie=copie/10;
}
return suma;
}
int main()
{
int n, numar, nou[200], i=1, ok=1;
cin>>n;
while(i<=n)
{
cin>>numar;
if( suma_cifre(numar)%2 == 0 )
{
nou[ok]=numar;
ok++;
nou[ok]=0;
i++;
}
else
{
nou[ok]=numar;
i++;
}
ok++; // aici se face un pas in plus pentru ok. Ca sa intelegi sugerez sa rulezi pe o foaie codul
}
for(i=1;i<=ok-1;i++) // mergem pana la ok-1 deoarece in while variabila ok va fi mai mare cu o unitate decat avem nevoie
cout<<nou[i]<<" ";
}
Explicație:
În timpul citirii celor n numere verifici pentru fiecare in parte daca suma cifrelor sale este para si construiesti un nou vector in care, daca respecta conditia ca suma sa fie para, se memoreaza valoarea citita si adaugi dupa ea valoarea 0, altfel, daca suma este impara, memorezi doar numarul.
Am considerat ca nu mai are rost sa citesc in vector elementele, asa cum spune cerinta, atata timp cat rezolvarea se poate face mai rapid si mai eficient din punct de vedere al timpului de executie.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că resursele disponibile v-au fost de ajutor. Pentru întrebări sau asistență suplimentară, nu ezitați să ne contactați. Ne bucurăm să vă revedem în curând și vă invităm să ne salvați în lista de site-uri preferate!