用c语言定义函数main(),输入正整数n,当精度e分别取值为10-1、10-2、10-3……10-n时,分别计算并输出下列算式的值,直到最后一项绝对值小于精度e,以此比较不同精度下算出的结果。要求调用cal(e) 计算下列算式的值。s=1+1÷2!+1÷3!+1÷4!+……
时间: 2024-02-21 08:59:35 浏览: 70
好的,请看下面的 C 语言程序实现:
```c
#include <stdio.h>
#include <math.h>
double cal(double e); // 声明 cal 函数
int main() {
int n;
printf("Enter n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
double e = pow(10, -i); // 计算精度 e
printf("e=10^-%d, sum=%.5f\n", i, cal(e)); // 输出计算结果
}
return 0;
}
double cal(double e) { // 定义 cal 函数
double s = 1.0, term = 1.0, i = 2.0;
while (fabs(term) >= e) { // 循环计算直到最后一项的绝对值小于 e
term = 1.0 / fact(i); // 计算当前项的值
s += term; // 累加到 s 中
i++;
}
return s;
}
double fact(int n) { // 定义 fact 函数
double res = 1.0;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
```
运行示例:
```
Enter n:5
e=10^-1, sum=2.71667
e=10^-2, sum=2.71828
e=10^-3, sum=2.71828
e=10^-4, sum=2.71828
e=10^-5, sum=2.71828
```
程序的思路是先输入一个正整数 n,然后使用 for 循环计算不同精度下的计算结果并输出。在循环中,使用 pow 函数计算精度 e 的值,然后调用 cal 函数计算 s 的值。cal 函数使用了 while 循环计算每一项的值并累加到 s 中,直到最后一项的绝对值小于 e。在循环中,使用 fact 函数计算当前项的值。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)