c语言设计二个子函数,利用级数之和分别计算sinX和cosX, 要求精度为10-6。在主函数中求(sin30O+ cos60O)。
时间: 2023-06-25 15:05:31 浏览: 140
下面是求解sinX和cosX的代码:
```c
#include <stdio.h>
#include <math.h>
double sinX(double x) {
double res = 0.0, term = x;
int i = 1;
while(fabs(term) >= 1e-6) {
res += term;
term *= -1.0 * x * x / (2 * i) / (2 * i + 1);
i++;
}
return res;
}
double cosX(double x) {
double res = 0.0, term = 1.0;
int i = 0;
while(fabs(term) >= 1e-6) {
res += term;
term *= -1.0 * x * x / (2 * i + 1) / (2 * i + 2);
i++;
}
return res;
}
int main() {
double sin_30 = sinX(30.0 * M_PI / 180.0);
double cos_60 = cosX(60.0 * M_PI / 180.0);
double res = sin_30 + cos_60;
printf("sin30O = %f, cos60O = %f, sin30O + cos60O = %f\n", sin_30, cos_60, res);
return 0;
}
```
其中,sinX和cosX函数都使用了泰勒级数来计算,while循环中的fabs(term) >= 1e-6是计算精度的判断条件,当term的绝对值小于1e-6时,认为已经达到了精度要求,可以结束循环。
在主函数中,我们计算了sin30O和cos60O,然后将它们相加得到了(sin30O+ cos60O)的结果。
输出结果为:
```
sin30O = 0.500000, cos60O = 0.500000, sin30O + cos60O = 1.000000
```
阅读全文