用c语言写一段程序,要求:通过函数fun,计算:x=1-1/3!+1/5!-1/7!....,函数fun的参数esp为计算精度,要求不是用数学函数,。
时间: 2024-03-22 21:41:32 浏览: 54
下面是用C语言编写的满足您要求的程序,函数fun的参数esp为计算精度:
```c
#include<stdio.h>
double fun(double esp)
{
double x = 1.0, term = 1.0;
int i = 1, sign = -1, fact = 1;
/* 计算每一项的值,直到满足计算精度 */
while (term > esp)
{
fact = fact * i * (i + 1); /* 计算分母 */
term = 1.0 / fact; /* 计算每一项的值 */
x = x + sign * term; /* 累加每一项的值 */
sign = -sign; /* 改变符号 */
i = i + 2; /* 下一项的分母增加2 */
}
return x;
}
int main()
{
double esp, x;
printf("请输入计算精度:");
scanf("%lf", &esp);
x = fun(esp);
printf("x = %lf\n", x);
return 0;
}
```
程序中使用了循环来计算每一项的值,并通过累加每一项的值得到最终的结果。在每次计算时,需要计算分母、每一项的值和符号,并更新累加结果和下一项的分母。
阅读全文