运行代码输入以后就不动了

#vs# #c#vs运行后,输入内容按下回车以后就不动了
#include
double fact(int i)
{
double sum = 1;
for (int j = 1;j <= i;i++)
{
sum = sum * j;
}
return sum;
}
int main()
{
int a;
double sum = 0;
scanf_s("%d", &a);
for (int i = 1;i <= a;i++)
{
sum = sum + 1 / fact(i);
}
printf("sum=%.5lf", sum);
return 0;
}

img

但是用另外一串代码就是好的可以运行
#include
double fact(int k)//先定义函数,免得声明
{
double sum = 1;
int i;
for (i = 1;i <= k;i++)
{
sum = sum * i;
}
return sum;//直接返回sum的值
}
int main()
{
int n, i;
double sum1 = 0;
scanf_s("%d", &n);
for (i = 1;i <= n;i++)
{
sum1 = sum1 + 1 / fact(i);//各阶乘的倒数分之一的和
}
printf("sum=%.5lf", sum1);
return 0;
}

for (int j = 1;j <= i;i++)
应该是j++