Informatică, întrebare adresată de Danielalala, 8 ani în urmă

Să se scrie un program care calculează suma elementelor impare dintr-un șir de numere reale.
vreau rezolvarea in C

Răspunsuri la întrebare

Răspuns de constantinescuandrei
1

Răspuns:

#include <iostream>

using namespace std;

// se declara variabilele n,m si p de tip intreg

//variabila n memoreaza numarul introdus de la tastatura

//variabila m memoreaza numarul format prin eliminarea cifrelor impare ale lui n

//variabila p memoreaza o putere a lui 10 si ajuta la construirea numarului cerut prin adaugarea fiecarei cifre pare pe pozitia corespunzatoare(unitati,zeci,sute etc.)

int n,m,p;

int main()

{// se citeste numarul n

   cout<<"Introduceti numarul n: ";

cin>>n;

//p se initializeaza cu elementul neutru al inmultirii

p=1;

//construim numarul m cu cifrele pare ale lui n, astfel m o sa reprezinte numarul format prin eliminarea cifrelor impare

while(n>0)

{

   if(n%2==0)//se verifica daca cifra este para

   {

       m=(n%10)*p+m;// se adauga cifra pe pozitia corespunzatoare in numarul nou format(unitati, zeci, sute etc.)

       p=p*10;//se mareste puterea lui 10, pentru ca urmatoarea cifra para sa fie adaugata din nou pe pozitia corespunzatoare(zeci, sute, mii etc.)

   }

   n=n/10;//se elimina cifra din numar

}

//se verifica daca numarul n are cel putin o cifra para

if(p==1)// daca p ramane egal cu 1 inseamna ca testul n%2==0 nu a fost trecut pentru nicio cifra a lui n, deci numarul are numai cifre impare

{

   cout<<"Numarul are numai cifre impare";

} else

{// se afiseaza numarul m obtinut prin eliminarea cifrelor impare ale lui n, format doar din cifre pare

cout<<"Prin eliminarea cifrelor impare ale lui n se obtine numarul: "<<m;

}

   return 0;

}

Alte întrebări interesante