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