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ă informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.