Hola:
Bueno tenias VARIOS errorsillos.... El primero era que llamabas al CICLO FOR, y solo corria una ves... ya que dentro pusiste el RETUNR, esto asi que corriera una sola ves y regresara el VALOR...se supoe que RETUR lo debes poner al FINAL..para que haga el proceso del factorial y devuelva el resultado guardado en la variable "f".
Y tu segundo error fue que NO supiste implementar el acomodamiento para poder hacer el factorial, porque se supone que el factorial de un numero se saca asi:
Ejemplo de un Numero: 5
5x4x3x2x1= 120
Para hacerlo tienes que tener la VARIABLE qu lleva el numero ( n ), y dos variables que te ayudaran ( i, f ).
Segun como corregi tu codigo, esta es la logica: i va valer el numero enviado menos uno ( i=n-1...si enviamos un 5, entonces i valdra 4. ) asi de este modolo DECREMENTAREMOS hasta que sea mayor que 0 (osea 1) y por ultimo la variable "f" la igualasmos al numero (f= n), su valor cambiara segun la multiplicacion ( f= f*i;)
#include <stdio.h>
int factorial(int n);
int main()
{
int fac, n;
printf("escriba el numero\n");
scanf("%d",&n);
fac=factorial(n);
printf("el factorial es %d \n",fac);
return 0;
}
int factorial(int n)
{
int i, f=n;
for(i=n-1;i>0;i--)
{
f=f*i;
}
return f;
}
byeeeeeeeeee