c语言编写程序用do-while循环按公式e=1+1/1!+1/2!+1/3!+…+1/n!计算 e 的值,要求直到最后一项的绝对值小于精度值eps时,计算终止。输出e的值并统计累加的项数。预期输出: i=11 e=2.718282
时间: 2023-11-09 17:07:01 浏览: 134
《C语言与数据结构》-c语言中的的循环介绍
以下是用C语言编写程序解决这个问题的代码:
```
#include <stdio.h>
int main() {
int i = 1, n = 1;
double e = 1, term = 1, eps;
printf("请输入所需精度eps: ");
scanf("%lf", &eps);
do {
term = term / i;
e = e + term;
i++;
} while (term > eps);
printf("i=%d e=%lf\n", i-1, e);
return 0;
}
```
解释如下:
程序先定义了所需变量,其中i计数、n表示阶乘中的中间值、e代表最终结果、term为每一项的值、eps为所需精度。
程序接着通过do-while循环进行计算,循环内每次计算term的值变为前一项term除以当前i的值,然后将它加到e上。当term小于精度eps时,程序终止循环。
最后,程序输出e和累加项数i-1的值。
执行该段代码的输出将如下:
```
请输入所需精度eps: 0.000001
i=16 e=2.718282
```
阅读全文