不知道哪里不对,求指导

img


这是我的代码

#include <stdio.h>
#include <math.h>
double pf(double n);

int main()
{
int i, flag;
double sum, fm, x,fz,n;
scanf_s("%lf", &x);
flag = 1;
sum = 0;
fm = 1;
n = 1;
fz = x;
for (i = 1; i <= 10; i++)
{
sum =flag*(fz / fm) + sum;
flag = -flag;
fm = pf(n);
n += 2;
fz = pow(x, n);
}
printf("%.3lf", sum);
return 0;
}
double pf(double n)
{
double a,sum1 = 1;
for (a = 1; a <= n; a++)
{
sum1 *= a;
}
return sum1;

}

修改如下,供参考:

for (i = 1; i <= 10; i++)
    {
         sum =flag*(fz / fm) + sum;
         flag = -flag;
         n += 2;       // 这句在前
         fm = pf(n);  // 这句在后
         fz = pow(x, n);
    }