Problema al ejecutar script en c

ferry91
23 de Enero del 2010
Hola,
Soy un principiante en toda regla de la programación. Llevo muy pocas semanas en esto y al intentar resolver un ejercicio me da un error que no se como resolver. Mi programa ha de calcular el factorial de un número pero no puedo utilizar el símbolo "*". Y haciendo uso de 2 funciones. Mi compilador es cygwin.

He creado una función para hacer el producto y otra para hacer el factorial. Por separado funcionan, y al juntarlas si pongo la de factoria como "main" también. Pero como me piden que use 2 funciones (a parte del main) pues he creado un main que llame a la función factorial. Lo compilo sin errores pero al ejecutarlo me da el siguiente error: segmentation fault (core dumped).

El código que he creado es este:

#include <stdio.h>

int factorial (int n);
int producto(int a, int b);


main()
{
int f;
long int res;
printf("Introduce un numero: ");
scanf("%d",f);
res=factorial(f);
printf("El factorial de %d es %d", f, res);

}

int factorial (int n)
{
int x;
long int y;
y=1;
x=n;
while (x>=2)
{
y=producto (y,x);
x--;
}
return y;
}

int producto (int a, int b)
{
int p, cont;
cont=1;
p=0;

while(cont<=b)
{
p=p+a;
cont++;
}
return p;
}

Espero que podáis ayudarme gracias!