编写一程序P215.C实现以下功能 求S=1/1!+1/2!+1/3!+…+1/N!并输出结果(显示时小数部分占16位,计算时要求从第1项开始往后累加)。N为任意自然数(只考虑int型),从键盘读入。编程可用素材:printf("Please input n: ")、printf("\nS=1/1!+1/2!+...+1/…!=…。 程序的运行效果应类似地如图1所示,图1中的18是从键盘输入的内容。 Please input n: 18 S=1/1!+1/2!+...+1/18!=1.7182818284590455
时间: 2023-05-28 17:04:57 浏览: 136
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double S=0,fact=1;
printf("Please input n: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact*=i;
S+=1/fact;
}
printf("\nS=1/1! 1/2! ... 1/%d!=%.16lf",n,S);
return 0;
}
相关问题
编写一程序p215.c实现以下功能 求s=1/1!+1/2!+1/3!+…+1/n!并输出结果(显示时
p215.c程序的功能是求解s=1/1! + 1/2! + 1/3! + ... + 1/n!的值,并输出结果。
以下是p215.c程序的伪代码:
1. 定义一个函数factorial(n),用于计算n的阶乘。
2. 在主函数中,接收用户输入的n值。
3. 定义一个变量s,用于存储s=1/1! + 1/2! + 1/3! + ... + 1/n!的值。
4. 使用循环计算每一项的值,并加到s上。
5. 输出s的值。
下面是p215.c程序的示例代码:
```c
#include <stdio.h>
// 计算n的阶乘
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
double s = 0.0;
// 接收用户输入的n值
printf("请输入n的值:");
scanf("%d", &n);
// 计算s的值
for (int i = 1; i <= n; i++) {
s += 1.0 / factorial(i);
}
// 输出s的值
printf("s的值为:%f\n", s);
return 0;
}
```
执行p215.c程序,输入n的值后,程序将计算并输出s=1/1! + 1/2! + 1/3! + ... + 1/n!的结果。
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。
求Sn=1! 2! 3! 4! 5! ... n!之值,其中n是一个数字。可以通过循环计算每个数的阶乘,然后将它们相加得到Sn的值。首先,我们可以使用C语言编写一个程序来计算Sn的值。
引用中的程序使用了一个循环来计算每个数的阶乘,并将它们相加得到Sn的值。它使用了一个变量m来存储每个数的阶乘,并使用变量sum来存储Sn的值。程序从1开始循环到n,并在每次循环中将m乘以i,然后将sum赋值为m。最后,程序输出sum的值,即Sn的值。
引用中的程序使用了嵌套循环来计算每个数的阶乘,并将它们相加得到Sn的值。它使用了变量s来存储每个数的阶乘,并使用变量p来存储每个数的阶乘的临时结果。程序从1开始循环到n,并在每次循环中将p乘以j,然后将s赋值为p。最后,程序输出s的值,即Sn的值。
所以,如果要求Sn的值,可以使用上述两个程序中的任意一个进行计算。只需要输入n的值,程序就会计算出Sn的值并输出。