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

Cerinţa
Să se scrie o funcție C++ care să determine prima și ultima cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.

Restricţii şi precizări
numele funcției va fi detcifre
funcția va avea trei parametri: primul parametru reprezintă numărul n pentru care se calculează cifrele cerute;al doilea parametru va reprezenta prima cifră a lui n, iar al treilea va reprezenta ultima cifră a lui n
n va fi număr natural mai mic decât 2.000.000.000
problema DetCifre (#905) de pe pbinfo

Rezolvare:
void sumcif(int m,int &p, int &u)
{
u=m%10;
while (m)
{
p=m%10;
m/=10;
}
}

Imi poate cineva explica de ce imi da doar 80p? Imi spune ca nu acopar toate cazurile...

Răspunsuri la întrebare

Răspuns de ArMyFoRHeLL
1
Nu acoperi cazul 0.Daca m intra cu 0  p-ul ramane neinitializat.
Uite aici ai varianta mea:
void detcifre(int n,int &p,int &u)
{
    u=n%10;
    while(n>9)
    n=n/10;
    p=n;
}
       

Răspuns de NuPotSaStiuTot
0
daca m == 0, p nu a valoare: program nu intra in WHILE
Alte întrebări interesante