启动C语言环境,设计二个子函数,利用级数之和分别计算sinX和cosX, 要求精度为10-6。在主函数中求(sin30O+ cos60O)。
时间: 2023-06-27 18:03:26 浏览: 205
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
// 定义计算阶乘函数
double factorial(int n) {
double res = 1;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
// 计算sinX
double sinX(double x) {
double res = x;
double term = x;
int n = 1;
while (fabs(term) >= 1e-6) {
term = -term * x * x / ((2 * n) * (2 * n + 1));
res += term;
n++;
}
return res;
}
// 计算cosX
double cosX(double x) {
double res = 1;
double term = 1;
int n = 1;
while (fabs(term) >= 1e-6) {
term = -term * x * x / ((2 * n - 1) * 2 * n);
res += term;
n++;
}
return res;
}
int main() {
double sin30 = sinX(30 * M_PI / 180); // 将角度转换为弧度
double cos60 = cosX(60 * M_PI / 180); // 将角度转换为弧度
double res = sin30 + cos60;
printf("sin30O = %.6lf, cos60O = %.6lf\n", sin30, cos60);
printf("sin30O + cos60O = %.6lf\n", res);
return 0;
}
```
运行结果如下:
```
sin30O = 0.500000, cos60O = 0.500000
sin30O + cos60O = 1.000000
```
其中,`sinX` 和 `cosX` 函数利用了泰勒级数的思想进行计算,通过不断迭代求和,直到满足精度要求为止。在主函数中,我们将角度转换为弧度,然后分别调用 `sinX` 和 `cosX` 函数计算 `sin30O` 和 `cos60O`,最后将它们的和输出。
阅读全文