c语言1加到n的阶乘之和

#include<stdio.h>
fac(int n)
{
int i,sum=0;
for(i=1;i<=n;i++)
{ n*=i;
sum+=n;
}
return sum;
}
int main(void)
{ int n1;
int result;
printf("随意输入整数n,求1!+2!+...+n!的和:\n");
scanf("%d",&n1);
result=fac(n1);
printf("%d",result);
return 0;
}

运行出来是随机数,这个程序哪里错了呢?

首先fac函数没有定义返回类型;

还有就是计算阶乘和计算的只是n的阶乘;

#include<stdio.h>

int fac(int n)    //返回类型为int型
{
    int sum = 0;
    int sum1 = 1;
    for(int j = 1; j <= n; j++)  //从1开始计算阶乘,计算到n
    {
        for(int i = 1; i <= j; i++)
        { 
            sum1 *= i; 
        }
        
        sum += sum1;
    }
    
    return sum;
}

int main(void)
{
    int n1;
    int result;
    printf("随意输入整数n,求1!+2!+...+n!的和:\n");
    scanf("%d",&n1);
    result = fac(n1);
    printf("%d",result);
    
    return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网