求cos近似值,输入1是对的,输入2就是-nan(ind),实在不会了,求帮助

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
double x = 0, cosxf = 1, m = 1, k = 1;
int z_1, z_2, n = 1;
scanf("%lf", &x);

do
{
    for (z_2 = 2; z_2 <= 3; z_2++, n++)
    {
        m = m * n;
    }

    for (z_1 = 2; z_1 <= 3; z_1++)
    {
        x = x * x;
    }

    k = -k;
    cosxf = cosxf + (k * x) / m;

} while (fabs(x / m) >= 1e-6);

printf("%lf", cosxf);

}

#include<stdio.h>
#include<math.h>

int main()
{
    double x = 0, cosxf = 1, m = 1, k = 1;
    int z_1, z_2, n = 1;

    scanf("%lf", &x);

    do
    {
        m = 1;
        for (z_2 = 2; z_2 <= 2 * n; z_2++)
        {
            m *= z_2;
        }

        x = x * x * (-1);

        k = -k;
        cosxf = cosxf + (k * x) / m;

        n++;
    } while (fabs((k * x) / m) >= 1e-6);

    printf("%lf", cosxf);

    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^