Citace Původně odeslal SOAD Zobrazit příspěvek
Ahojky, muze mi prosim nekdo vysvetlit proc mi tahle fce umi spravne spocitat pouze faktorial do 12! . Pak uz sou vysledky nejaky zcestny
Predpokladam, ze to bude jen v zobrazeni te hodnoty, protoze do tech 12! to pocita spravne ale zkousel sem to menit na long int, float, ale nic nepomohlo.

Dikes

int faktorial1(int f)
{
int i;
for (i = f-1; i >= 2; i--)
f *= i;
return f;
}


13! = 6 227 020 800

Zkontroluj si implementaci intu. Predpokladam, ze je 32 bitova, cili signed int ma pak rozsah od - 2 147 483 648 do + 2 147 483 647. Z toho je jasne, ze tvoje hodnota faktorialu je mimo rozsah, a zobrazi se ti cislo nekde mezi (- 2^31) a (2^32 - 1).