c语言设计二个子函数,利用级数之和分别计算sinX和cosX(X为弧度), 要求精度为10-6。(即小于10-6项不累加)在主函数中求(sin30O+ cos60O)。
时间: 2023-07-16 14:12:04 浏览: 138
以下是实现该功能的代码:
```c
#include <stdio.h>
#include <math.h>
double sinX(double x) {
double sum = 0.0, term = x;
int n = 1;
while (fabs(term) >= 1e-6) {
sum += term;
term = -term * x * x / (2 * n) / (2 * n + 1);
n++;
}
return sum;
}
double cosX(double x) {
double sum = 1.0, term = 1.0;
int n = 1;
while (fabs(term) >= 1e-6) {
sum += term;
term = -term * x * x / (2 * n - 1) / (2 * n);
n++;
}
return sum;
}
int main() {
double angle = 30.0 / 180.0 * M_PI;
double result = sinX(angle) + cosX(2 * angle);
printf("sin(30°) + cos(60°) = %lf\n", result);
return 0;
}
```
首先我们定义了两个子函数 `sinX` 和 `cosX`,它们分别计算 $\sin x$ 和 $\cos x$ 的值。这里采用了泰勒级数展开,通过循环累加每一项来计算最终的值,当某一项的绝对值小于 $10^{-6}$ 时停止累加。
在 `main` 函数中,我们将角度转换成弧度,然后计算出 $\sin 30^\circ$ 和 $\cos 60^\circ$,将它们相加得到最终结果,并输出到屏幕上。
阅读全文