Il programma originale funziona con i numeri 0, 1, 5 e 10, ma non con i numeri 15, 30 e 100.
Per estendere l'intervallo di rappresentazione della variabile che ospitera' il valore
calcolato dal fattoriale, sostituisci la riga:
int n, fatt; // con delle virgole si dichiarano piu' variabili int
con:
int n;
double fatt;
E la riga:
printf("\n Il fattoriale di %d e' l'intero %d\n",n,fatt);
con:
printf("\n Il fattoriale di %d e' l'intero %g\n",n,fatt);
E' necessario modificare anche il prototipo e la definizione della funzione.
Quindi sostituisci la riga:
int calcola_fattoriale(int n);
con:
double calcola_fattoriale(int n);
E la definizione:
int calcola_fattoriale(int n)
// Il calcolo del fattoriale e' racchiuso in questa funzione
{
int i, fatt=1;
for (i=1; i<=n; i++)
{
fatt = fatt * i;
}
return(fatt); // ritorna il valore calcolato
}
con:
double calcola_fattoriale(int n)
// Il calcolo del fattoriale e' racchiuso in questa funzione
{
int i;
double fatt=1;
for (i=1; i<=n; i++)
{
fatt = fatt * i;
}
return(fatt); // ritorna il valore calcolato
}