关于#c#的问题,如何解决?

题目内容:计算并输出s的值。s的计算方法见下式,其中m为实数,其值由键盘读入。计算时,要求最后一项的绝对值小于1e-4,输出结果保留两位小数。
输入格式: 实数m,格式控制串为"%lf"
输出格式: 式子的值,输出格式控制串为"%.2f\n"
为什么我的代码是错的

#include
#include
int main() {
    int i = 0, g = 0, j = 1;
    double m = 0, s = 0, k, h = 1;
    scanf_s("%lf", &m);
    for (i = 1; h >= 1e-4; i++)
    {
        for (g = 1; g <= i; g++)
        {
            j *= g;
        }
        h = (pow(-1, i + 1)) * (pow(m, i) / j);
        k = h;
        if (h < 0) { h = -h; }
        s += k;


    }
    printf("%.2f\n", s);


    return 0;
}


scanf("%lf", &m);

img