目的是求e^x的近似值,这个代码哪里错了
#include<stdio.h>
#include<math.h>
int sky(int x);
void main()
{
int i,x;
float e=1,n;
scanf("%d",&x);
for(i=1;1;i++)
{
n=1.0*pow(x,i);
e=1.0*(n/sky(i))+e;
if(n/(sky(i))<=1e-6)
break;
}
printf("%f\n",e);
}
int sky(int y)
{
int m=1,s=1;
for(m=1;m<=y;m++)
{
s=s*m;
}
return s;
}