这样写为什么错了
#include <stdio.h>
#include <stdlib.h>
int main()
{
double e;
long k=1;
int n,i;
while(scanf("%d",&n)!=EOF)
{
e=1;
for(i=1;i<n;i++)
{
k=k*i;
e=e+1.0/k;
}
printf("%.4f\n",e);
}
return 0;
}