用C语言编程 程序功能:输入正整数 n 和实数 x(x 范围在区间[0,1.57]之间),按公 式计算 cos(x)的值(前 n 项之和,保留 4 位小数)。要求定义并调用函数fact(n)计算n的阶乘,定义并调用函数power(x,n)计算x的n次方。其中cos(x)=x^0/0!-x^2/2!+x^4/4!-x^6/6!+…
时间: 2024-03-17 19:43:20 浏览: 60
好的,我会为您解答这道题目。下面是参考代码:
```c
#include <stdio.h>
int fact(int n); // 声明阶乘函数
double power(double x, int n); // 声明幂函数
double cos(double x, int n); // 声明cos函数
int main() {
int n;
double x;
printf("请输入正整数n和实数x(x在区间[0, 1.57]之间):\n");
scanf("%d%lf", &n, &x);
double result = cos(x, n);
printf("cos(%lf)的前%d项之和为%.4lf\n", x, n, result);
return 0;
}
int fact(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
double power(double x, int n) {
double result = 1;
for (int i = 0; i < n; i++) {
result *= x;
}
return result;
}
double cos(double x, int n) {
double result = 0;
for (int i = 0; i < n; i++) {
int f = fact(2 * i);
double p = power(x, 2 * i);
if (i % 2 == 0) {
result += p / f;
} else {
result -= p / f;
}
}
return result;
}
```
在这个程序中,我们定义了三个函数:
1. `fact(n)` 函数用于计算 `n` 的阶乘,采用递归方式实现。
2. `power(x, n)` 函数用于计算 `x` 的 `n` 次方。
3. `cos(x, n)` 函数用于计算 `cos(x)` 的前 `n` 项之和。
在 `cos` 函数中,我们利用了 `fact` 和 `power` 函数来计算阶乘和幂。然后,我们根据题目所给的公式计算 `cos(x)` 的前 `n` 项之和,并将结果返回。
最后,在 `main` 函数中,我们接受用户输入的参数,并调用 `cos` 函数计算结果并输出。
阅读全文