在主函数中输出1!+2!+3!+…+n!的值。要求将计算阶乘的运算写成函数。 主函数如下:

int main()
{
int n,sum,i;
while(scanf("%d",&n)!=-1)
{
sum=0;
for(i=1;i<=n;i++)
sum+=fact(i);
printf("1!+2!+3!+…+%d!=%d\n",n,sum);
}
return 0;
}

#include <cstdio>

int factorial(int a){
int b=1;
if(a==1||!a) return 1;
b=a*factorial(a-1);
return b;
}

int main(){ 
    int n,sum,i;
    while(scanf("%d",&n)!=-1){
        sum=0;
        for(i=1;i<=n;i++)
        sum+=fact(i);
        printf("1!+2!+3!+…+%d!=%d\n",n,sum);
    }
    return 0;
}

追问

运行结果不正确。

追答

运算结果没错吧
对了我函数名忘记改了
你把factorial全部改成fact

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-14
int fact(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{ result *= i; }
return result;
}

写程序 ,在 主函数 中 输出1!+2!+3!+...+10!的值。要求 将 计算将...
f=f*i; \/* 实现阶乘 *\/ s=s+f; \/* 实现阶乘的相加 *\/ } \/* 注意:for循环的运用 *\/ printf("1!+2!+3!+……+10!=%d\\n",s);}

1!+2!+3!+...+n! JAVA
计算结果:2.7441081847014212 乘以10的32次方,貌似是这么读

用C++编写程序,计算 1!+2!+3!+……+N! .要求:编写一个子函数计算...
{int t=1,j;for(j=1;j<=i;j++)t=t*j;return t;} int main(int argc, char* argv[]){ int N,i, sum=0;cout<<"输入N:";cin>>N;for(i=1;i<=N;i++)sum=sum+f(i);cout<<"sum="<<sum<<endl;return 0;} 把f函数放main外面就ok了 ...

2 编程计算1!+2!+3!+..的前n项的和,n从键盘输入,要求:采用递归函数方法...
printf("Sum of factorial series up to %d terms: %d\\n", n, sum);return 0;} 这段代码中,factorial 函数用于计算阶乘,factorialSum 函数用于计算前n项阶乘的和。factorialSum 函数通过递归调用 factorial 函数来计算每一项的阶乘,并将它们累加起来。在 main 函数中,从键盘输入一个整数n,然后...

求阶乘y=1!+2!+3!+4!+ ...+n!大神帮帮忙看看那里错了
2.你的主函数中,s初值应该是0,表示初始之和为0。你初值为2会使你求的结果比真实结果大2 3.你主函数中for循环应该改为for (k=1;k<=n;k++),因为是从1开始求阶乘。最后给你一个参考代码:include "stdio.h"int fun(int n){\/\/下面是递归求阶乘 if(n==0||n==1)return 1;else retu...

编写函数fun求1!+2!+3!+ …… +n!的和,在main函中由键盘输入n值,并输 ...
include <stdio.h> int fun(int n){ int sum=1;int suma=0;for(int j=1;j<=n;j++){ for(int i=1;i<=j;i++){ sum*=i;} suma+=sum;sum=1;} return suma;} void main(){ int n;int sum=0;scanf("%d",&n);printf("!+2!+3!+ …… +n!=%d\\n",fun(n));} ...

C语言 求阶乘的和 编程题 要求将计算阶乘的运算写成函数JC(n).
include<stdio.h>\/\/求阶乘int JC(int n){ if (n == 0 || n == 1) return 1; else return n*JC(n - 1);} int main(){ int n; printf("求1!+2!+...+n!的结果\\n输入n的值: "); scanf("%d", &n); int sum = 0; for (int i = 1; ...

...1!+2!+3!+...+m!‹n,编程指定的n值计算输出满足该不等式的m的整数...
首先我们需要写一个计算阶乘的子函数,方便我们在主函数中调用计算,可以省下很多代码。计算阶乘用累加法嵌套一个for循环,循环上限就是你的参数,如5的阶乘参数就是5,计算方法就是a=1*1+2*2+……5*5,简单的写就是a+=i*i,i循环。其次在主函数中的算法,穷举法的基本思想是根据题目的部分条件...

C语言:输入n,求1!+2!+3!+4!+5!+...+n!
include<stdio.h> int fun(int n){ int i,sum=1;for(i=1;i<=n;i++)sum*=i;return sum;} main(){ int i,sum=1;\/\/这里sum初始化应为0,这和上面函数乘是不一样,你可能没注意 int n;scanf("%d",&n);for(i=1;i<=n;i++){sum+=fun(i);} printf("%d\\n",sum);} ...

求1!+2!+...+20!=的C语言编程
include <stdio.h> int main(){ double sum = 0; \/\/ 定义和 double fac = 1; \/\/ 定义阶乘 for (int i = 1; i <= 20; i++) \/\/ 循环从 1 到 20 { fac *= i; \/\/ 计算阶乘 sum += fac; \/\/ 累加和 } printf("1!+2!+...+20! = %e\\n", sum); \/\/ 输出结果,...

相似回答
大家正在搜