-3

对于作业,我需要编写 ac 程序,使用泰勒级数展开找到输入角的余弦,它上升到第 50 项(意味着最后一项是 x^100/100!)。到目前为止,我一直在尝试使用 for 循环,也尝试了 while 循环,但我一直得到不正确的答案。我已经有了工作功率和阶乘函数,并且我已经有了以弧度表示的角度值,我只是不明白如何格式化循环以便得到合乎逻辑的答案。

这是我向用户询问角度、将角度转换为弧度并调用函数的部分:

printf("Enter an angle measure in degrees to find the cosine value:\n");
scanf("%lf",&angle);
angle = angle * (M_PI/180);
result = myCos(angle);`

这是功能:

long double myCos(double x)
{
  long double result = 0;
  double term = 0;
  int k = 0;

  for(k = 2;k <= 100;k += 2)
  {
    term = power(x,k)/factorial(k);
  }

  result = 1 - term;
  return(result);
}

有人可以告诉我我做错了什么吗?

4

1 回答 1

1

不要试图计算x^kk!每次都通过循环。在循环外初始化商,然后乘以x/k(或者x^2/k(k-1),如果您只想要奇数项),以更新每次迭代的商。

于 2014-03-18T17:44:15.733 回答