Si, la he probado, y definitivamente funciona bien
#include <stdlib.h>
#include <stdio.h>
int factorial(int n) {
if(n<0)
return 0;
else
if(n>1)
return n*factorial(n-1);
return 1;
}
int main(){
int n;
printf("Ingresa un numero del cual desees obtener su factorial: ");
scanf("%d",&n);
printf("\nEl factorial es %d\n", factorial(n));
system("PAUSE");
}
Ingresa un numero del cual desees obtener su factorial: 7
El factorial es 5040
Presione una tecla para continuar . . .