c语言设计二个子函数,利用级数之和分别计算sinX和cosX, 要求精度为10-6。在主函数中求(sin30O+ cos60O)。
时间: 2024-05-03 11:17:59 浏览: 114
可以使用泰勒级数来计算sinX和cosX:
sinX = X - X^3/3! + X^5/5! - X^7/7! + ...
cosX = 1 - X^2/2! + X^4/4! - X^6/6! + ...
其中X的单位为弧度。
以下是实现代码:
```c
#include <stdio.h>
#include <math.h>
#define PRECISION 0.000001
double sinx(double x) {
double result = 0;
double term = x;
int n = 1;
while (fabs(term) >= PRECISION) {
result += term;
n += 2;
term = -term * x * x / (n * (n - 1));
}
return result;
}
double cosx(double x) {
double result = 0;
double term = 1;
int n = 2;
while (fabs(term) >= PRECISION) {
result += term;
n += 2;
term = -term * x * x / (n * (n - 1));
}
return result;
}
int main() {
double sin30 = sinx(M_PI / 6);
double cos60 = cosx(M_PI / 3);
double result = sin30 + cos60;
printf("sin30 + cos60 = %lf\n", result);
return 0;
}
```
其中M_PI是math.h库中定义的π的常量,fabs是求绝对值的函数。运行结果为:
```
sin30 + cos60 = 1.500000
```
阅读全文