Código:
Lo de los números que me dan cero, no se si sera porque la variable tenga un limite de almacenamiento, pero lo de los factoriales negativos, no me lo explico. #include <stdio.h>
int main ()
{
int num; //numero introducido
int ni, n; //factorial
printf("Introduzca numero, (-1 para terminar): ");
scanf("%d", &num);
while (num != -1){
if (num == 0){
ni = 1;
}
else if (num == 1){
ni = 1;
}
else{
n = num;
ni = n * (n-1); //ni es "n!"
--n;
while (n != 1){ //sacar factorial de numero mayor a 2
ni = ni * (n-1);
n -= 1;
}
}
printf("El factorial de %d es %d\n", num, ni);
printf("Introduzca numero, (-1 para terminar): ");
scanf("%d", &num);
}
system("pause");
return 0;
}
¿Tengo mal el código?



