编写程序,求1+1/1!+1/2!+1/3!+...+1/n!,并将结果存放到e (打印显示2位小数) C语言
时间: 2023-08-31 07:19:19 浏览: 125
### 回答1:
以下是在 C 语言中求 1/1! + 1/2! + ... + 1/n! 的程序:
#include <stdio.h>
#include <math.h>
int main() {
// 定义变量
int n;
double sum = 0;
double fact = 1;
// 输入 n 的值
printf("请输入 n 的值:");
scanf("%d", &n);
// 计算 1/1! + 1/2! + ... + 1/n! 的值
for (int i = 1; i <= n; i++) {
fact = fact * i;
sum = sum + 1.0 / fact;
}
// 输出结果,保留两位小数
printf("结果为:%.2f", sum);
return 0;
}
注意:在计算阶乘时,需要使用 double 类型的变量来存储结果,否则可能会出现精度问题。
### 回答2:
在C语言中,可以使用循环和递归结合的方式来编写程序求解1/1!,1/2!,1/3!,...,1/n!的和,并将结果存放到变量e中。以下是一个示例程序:
```c
#include <stdio.h>
double factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n;
double sum = 0.0;
double e;
printf("请输入n的值:");
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
sum += 1 / factorial(i);
}
e = sum;
printf("e的近似值为:%.2f\n", e);
return 0;
}
```
在该程序中,首先使用递归方式定义了一个计算阶乘的函数`factorial()`,然后在主函数中通过循环计算了1/1!,1/2!,1/3!,...,1/n!的和,并将结果存放到变量sum中。最后将sum赋值给变量e,并使用`%.2f`格式化输出e的近似值,保留两位小数。
用户输入了n的值后,程序会计算并输出e的近似值。例如,当用户输入n为5时,程序输出的e的近似值为2.72。
阅读全文