运行之后总是0.49972989,想问问各位朋友是哪里出问题了?

大一,对着它看一天了,真看不出来哪出了问题,不敢问同学,希望各位帮帮忙,谢谢了!

img

img

你可以参考这个,两种写法。 https://ask.csdn.net/questions/7798480/53927579?spm=1001.2014.3001.5504

#include<stdio.h>
int main()
{
  int i, n, one;
  double x, s, a, b, x2;
  scanf("%lf %n", &x, &n);
  x2 = x * x;
  s = x;
  a = x;
  b = 1;
  one = 1;
  for (i = 2; i <= n; i++)
  {
    one *= -1;
    a *= x2;
    b *= (2 * i - 1) * (2 * i - 2);
    s += one * a / b;
  }
  printf("%.10lf", s);
}

试试这位大佬的算法
https://blog.csdn.net/qq_39977056/article/details/121665386

#include<stdio.h>
int main()
{
    int n,i;
    double a,b=1,s=0,x;
    scanf("%lf%d",&x,&n);
    a=x;
    for(i=1;i!=n;i++)
    {
        s=s+a/b;
        a=-a*x*x;
        b=b*2*i*(2*i+1);
    }
    printf("%.8lf",s);
    return 0;
}