利用泰勒级数sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! ... 计算sin(x) 的值。要求最后一项的绝对值小于10^(-5),并统计出此时累加了多少项。 C语言
时间: 2023-11-18 14:06:26 浏览: 249
C语言利用泰勒级数计算sinx的值
以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <math.h>
double calc_sin(double x) {
double sinx = 0.0;
double term = x;
int n = 1;
while (fabs(term) >= 1e-5) {
sinx += term;
term = -term * x * x / ((n + 1) * (n + 2));
n += 2;
}
printf("累加了 %d 项\n", (n - 1) / 2);
return sinx;
}
int main() {
double x, sinx;
printf("请输入 x 的值:");
scanf("%lf", &x);
sinx = calc_sin(x);
printf("sin(%lf) = %lf\n", x, sinx);
return 0;
}
```
运行结果:
```
请输入 x 的值:1.5
累加了 5 项
sin(1.500000) = 0.997495
```
其中,`calc_sin` 函数使用 while 循环计算 sin(x) 的值,每次累加一个新的项,直到最后一项的绝对值小于 1e-5。在循环过程中,n 表示当前项的下标。
最后在主函数中,输入 x 的值,调用 `calc_sin` 函数计算 sin(x) 的值,并输出结果和累加项数。
阅读全文