求幂级数展开的部分和

 ###### 问题遇到的现象和发生背景

img

 ###### 用代码块功能插入代码,请勿粘贴截图

#include
#include
int jiecheng(int x);
int main()
{
    int i;
    double x,xiang=1,sum=0;
    scanf("%lf", &x);
    for (i = 0; xiang >= 0.00001; i++)
    {
        xiang = 1.0*pow(x, i) / jiecheng(i);
        sum += xiang;
    }
    printf("%.4lf", sum);
    return 0;
}
int jiecheng(int x)
{
    int i,jieguo = 1;
    for (i = 1; i <= x; ++i)
    {
        jieguo *= i;
    }
    return jieguo;
}

 ###### 运行结果及报错内容

img

 ###### 我的解答思路和尝试过的方

 ###### 我想要达到的结果
为什么x取最大值时答案错误

int 装不下12以上的阶乘。改用long long或者double。