对于作业,我需要编写一个c程序,使用泰勒系列展开来查找输入角度的余弦值,这是第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);
}
有人能说出我做错了吗?
答案 0 :(得分:1)
不要尝试计算每次通过循环的x^k
或k!
。初始化循环外的商,然后乘以x/k
(或x^2/k(k-1)
,如果你只想要奇数项),更新每次迭代的商。