Online Compiler C

// Do NOT use arrays! #include "pt4.h" #include <math.h> double Cos1(double x, double eps){ double res = 0; double a = 1; int i = 0; while (fabs(a) >= eps){ res += a; a *= -x*x/((i+1)*(i+2)); i += 2; } return res; } void Solve() { Task("ZFunc42"); double x; GetD(&x); //ShowLineD(x); for (int i = 0; i < 1; i++){ double eps; GetD(&eps); PutD(&eps); //ShowLineD(eps); //double ans = Cos1(x,eps); //ShowLineD(ans); PutD(Cos1(x, eps)); } }
1) 这段代码实现了一个计算余弦函数近似值的函数 `Cos1`,使用泰勒级数展开,并通过循环累加项直到项的绝对值小于给定的精度 `eps`。主函数 `Solve` 读取输入值 `x` 和精度 `eps`,然后输出计算结果。

2) 提示1:注意泰勒级数的通项公式,当前代码中 `a *= -x*x/((i+1)*(i+2))` 正确地计算了下一项与当前项的关系。
提示2:确保理解循环终止条件 `fabs(a) >= eps` 的意义,它控制着计算的精度。