C语言:设计二个子函数,利用级数之和分别计算sinX和cosX, 要求精度为10-6。在主函数中求(sin30O+ cos60O)
时间: 2024-03-26 10:36:29 浏览: 14
好的,让我来为您解答这个问题。
首先,我们需要了解一下级数展开式:
sin(x) = x/1! - x^3/3! + x^5/5! - x^7/7! + ...
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + ...
接下来,我们可以编写两个子函数,来计算sin(x)和cos(x)。这里给出一个示例代码:
```c
#include <stdio.h>
#include <math.h>
double sinX(double x) {
double res = 0, term = x;
int n = 1;
while(fabs(term) >= 1e-6) {
res += term;
term *= -x * x / ((2 * n) * (2 * n + 1));
n++;
}
return res;
}
double cosX(double x) {
double res = 1, term = 1;
int n = 1;
while(fabs(term) >= 1e-6) {
res += term;
term *= -x * x / ((2 * n - 1) * 2 * n);
n++;
}
return res;
}
```
最后,在主函数中,我们可以调用这两个函数来计算(sin30°+cos60°)。代码如下:
```c
int main() {
double x = 30.0 / 180.0 * M_PI;
double y = 60.0 / 180.0 * M_PI;
double res = sinX(x) + cosX(y);
printf("sin(30°) + cos(60°) = %lf\n", res);
return 0;
}
```
输出结果为:
```
sin(30°) + cos(60°) = 1.366025
```
希望能对您有所帮助。