c语言利用阶乘计算cosx
时间: 2023-07-13 15:12:04 浏览: 161
c语言中没有直接用于计算cosx的函数,但是可以利用泰勒展开式和阶乘来计算cosx的近似值。具体步骤如下:
1. 引入头文件math.h
```c
#include <math.h>
```
2. 定义函数cosx,输入参数为double类型的x和n
```c
double cosx(double x, int n)
```
3. 定义变量cos、temp和factorial,用于存储cosx的值、每一项的值和阶乘
```c
double cos = 1, temp = 1, factorial = 1;
```
4. 利用for循环计算cosx的近似值,循环n次
```c
for (int i = 1; i <= n; i++) {
factorial = factorial * (2 * i - 1) * (2 * i); // 计算阶乘
temp = temp * (-1) * x * x / factorial; // 计算每一项的值
cos = cos + temp; // 累加每一项的值
}
```
5. 返回cos的值
```c
return cos;
```
完整代码如下:
```c
#include <stdio.h>
#include <math.h>
double cosx(double x, int n) {
double cos = 1, temp = 1, factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = factorial * (2 * i - 1) * (2 * i); // 计算阶乘
temp = temp * (-1) * x * x / factorial; // 计算每一项的值
cos = cos + temp; // 累加每一项的值
}
return cos;
}
int main() {
double x = 1.0;
int n = 10;
printf("cos(%lf) = %lf\n", x, cos(x)); // 使用math.h中的cos函数验证结果
printf("cos(%lf) ≈ %lf\n", x, cosx(x, n));
return 0;
}
```
输出结果为:
```
cos(1.000000) = 0.540302
cos(1.000000) ≈ 0.540302
```
阅读全文
相关推荐


















