the program goes like this:
it should calculate the value of e^x by the series
1+x+x^2/2!+x^3/3!...+x^n/n!
when the user inputs a value , eps , which the program has to stop compute e^x when x^n/n<eps.

I wrote 2 function , one calculating the factorial result (fact), and one calculates the value x^n/n! (monom).
these functions works well, but the program keeps giving me 1 as result for e^x (or it gets stuck..)
it seems that the problem comes from the condition monom (x,j)<eps, but I can't see why...
Code:
#include <stdio.h>
#include <math.h>

float fact (int);
double monom (float x, int n);

int main (void)
{
float x;
printf ("please enter x value for e^x: ");
scanf ("%f", &x); 
double exp=1;
float eps;
printf ("please enter delta: ");
scanf ("%f", &eps);
int j;
for (j=1; monom (x,j)<eps; j++)
exp+=monom (x,j);
printf ("%f",exp);
 
return 0;
}

float fact (int a)
{    
float result=1;
int i;
for (i=1;i<=a;i++)
result*=i;    
return result;    
}

double monom (float x, int n)
{
return (pow(x,n)/fact(n));    
}
can you guys help me? thanks a lot!