Voilà!
#include <iostream>
using namespace std;
int main()
{ unsigned nr,s=0,p=1,cf,c=0,nr_cifre=0,temp; //declar variabilele
cout<<"Introduceti numarul:";cin>>nr; //introduc numarul
temp=nr; //lui "temp" ii atribui valoarea numarului introdus
while(temp!=0){nr_cifre++;temp=temp/10;} //stabilesc cate cifre are numarul introdus.
if(nr_cifre%2!=0) //daca numarul de cifre este impar, intru in programul lui hiey
{
while(nr!=0)
{
c++;
if(c%2==0)
{
cf=nr%10;
s=s+cf;
p=p*cf;
}
nr=nr/10;
}
}
cout<<s<<endl<<p;
return 0;
}
Dar da, functioneaza doar daca numarul de cifre este impar, programul este structurat putin dezordonat, l-am scris acum la ora asta, me-a luat 10 min.
Intrebarea este, ce fac daca are un nr par de cifre?Putea sa sar peste if(nr_cifre%2!=0) daca aflam "inversul" numarului introdus si foloseam ce a zis hiey? Daca da, cum aflu "inversul"?
EDIT: sunt mai destept ca niciodata seara asta, am gasit si cum sa calculez inversul unui nr.
#include <iostream>
using namespace std;
int main()
{
unsigned n,c,inversul;
cout<<"Introduceti numarul:";cin>>n;
inversul=n%10;
n=n/10;
while(n!=0)
{
c=n%10;
inversul=inversul*10+c;
n=n/10;
}
cout<<inversul;
return 0;
}
E ceva facut la repezeala, da e bine..