#include <stdio.h> double fact( int n ); int main(void) { int i, n; double sum; scanf("%d", &n); sum = 1; for(i = 1; i <= n; i++){ sum = sum + 1.0/fact(i); } printf("%f\n", sum); return 0; } /* 请在这里填写答案 */
时间: 2024-01-20 13:03:14 浏览: 101
根据程序,我们可以看出 fact 函数的作用是求 n 的阶乘,因此可以使用递归来实现。
具体实现如下:
```c
double fact(int n) {
if (n == 0) {
return 1;
} else {
return n * fact(n - 1);
}
}
```
上述函数中,如果输入的 n 等于 0,那么它的阶乘就是 1;否则,我们使用递归调用 fact 函数求解 n - 1 的阶乘,并将结果乘以 n。
希望这个答案能够帮助到你。
相关问题
#include <math.h> #include <stdio.h> double fun(int n) { } main() { int n; double sum; printf("\n\nInput n: "); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); }用C语言
以下是一个简单的程序,可以计算出1到n的平方根倒数之和:
```
#include <stdio.h>
#include <math.h>
double fun(int n) {
double sum = 0.0;
int i;
for (i = 1; i <= n; i++) {
sum += 1.0 / sqrt(i);
}
return sum;
}
int main() {
int n;
double sum;
printf("\n\nInput n: ");
scanf("%d", &n);
sum = fun(n);
printf("\n\nsum=%f\n\n", sum);
return 0;
}
```
函数`fun`接受一个整数`n`作为参数,返回1到n的平方根倒数之和。主函数中输入n,调用fun函数,然后输出结果。
源程序如下: #include <math.h> #include <stdio.h> double fun(int n) { } main() { int n; double sum; printf("\n\nInput n: "); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); }按我上面说的完善这个程序
好的,根据你的需求,下面是完善后的程序:
```c
#include <math.h>
#include <stdio.h>
double fun(int n) {
double sum = 0.0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / i;
}
return sum;
}
int main() {
int n;
double sum;
printf("\n\nInput n: ");
scanf("%d", &n);
sum = fun(n);
printf("\n\nsum=%f\n\n", sum);
return 0;
}
```
这个程序的作用是计算 $1+1/2+1/3+\cdots+1/n$ 的和,并将结果输出。其中 `fun` 函数实现了这个求和的过程,`main` 函数则负责输入和输出。
阅读全文