用c语言写一段程序,要求:用fun函数计算:1-1/3!+1/5!-1/7!.....,不使用数学函数
时间: 2024-03-22 13:41:57 浏览: 47
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
好的,这是一个比较简单的题目,可以使用循环和递归来实现。下面是使用循环实现的代码:
```
#include <stdio.h>
double fun(int n);
int main()
{
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("计算结果为:%lf", fun(n));
return 0;
}
double fun(int n)
{
double result = 0.0;
int i;
int flag = 1;
double temp = 1.0;
for (i = 1; i <= n; i += 2)
{
temp = 1.0;
for (int j = 1; j <= i; j++)
{
temp *= j;
}
result += flag / temp;
flag = -flag;
}
return result;
}
```
在这个程序中,我们定义了一个fun函数,用来计算1-1/3!+1/5!-1/7!.....的结果。在fun函数中,我们定义了一个result变量,用来保存计算的结果。然后我们使用一个循环,每次循环加上一个数,同时更新flag的值(用来记录加还是减),并计算阶乘,最后将当前的数加到result中。计算完所有的数后,返回result即可。
需要注意的是,我们在计算阶乘时,不能直接使用math.h中的函数,因此我们使用了另一个循环来计算阶乘。如果n的值比较大,这个计算阶乘的循环可能会比较耗时,因此可以考虑使用递归来实现。
阅读全文