#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);
}