c语言,求1!+2!+3!+4!+5!+....+n!

#include"stdio.h"intmain(){inti,n,sum;printf("inputanumber:",n);sum=0;for(i=1;i<=n;i+... #include"stdio.h"
int main()
{
int i,n,sum;
printf("input a number:",n);
sum=0;
for(i=1;i<=n;i++)
sum+=i*i;
printf("sum=%d\n",sum);
return 0;
}
求修改!!
展开
 我来答
cdyzxy
推荐于2017-05-23 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3666万
展开全部
这里的关键是要有一个变量能存储下n!和整个的和,普通int型和long int型变量范围都很小,所以建议用double型变量。
你的程序虽然提示输入数据到变量n,但没有调用输入语句输入,应当:
printf("input a number:"); scanf("%d",&n);
你用sum变量保存累加和,这是正确的,但每项的阶乘值没有变量来保存是个问题,要知道阶乘也是一个累乘的结果,而i*i并不是n的阶乘而是n的平方。当前项等于前边相乘以当前的i值,这个累乘变量的起始值为1。
建议:
int i,n;
double sum,m;
...
sum=0; m=1; //变量m计算当前项即阶乘值
for ( i=1;i<=n;i++ ) { m*=i; s+=m; }
printf("sum=%.0lf\n",sum);
但请注意,仍有n过大无法计算的问题存在。
百度网友0ecab4f
2015-01-05 · TA获得超过1028个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:377万
展开全部
#include "stdio.h"
int main()
{
    int i,n,sum,k=1;
    printf("input a number:",n);
    scanf("%d",&n);//输入语句
sum=0;
for(i=1;i<=n;i++)
{
            k=k*i;
           sum+=k;
 }
printf("sum=%d\n",sum);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜如此溫柔
2015-01-05 · 超过22用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:27.7万
展开全部
#include <stdio.h>
int FactorialAdd (int num)
{
if (num == 1 || num == 0) {
return 1;
}
else
return num * FactorialAdd(num - 1);
}

int main()
{
//运行程序的时候,请把n换成你想要的数字;
int i, n, sum = 0;
for (i = 1; i <= n; i++) {
sum += FactorialAdd(i);
}
printf("sum = %d\n", sum);
return 0;
}
此处用到一个简单的递归算法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-05
展开全部
#include <stdio.h>

int foo(int n) {
    int i, sum = 1;
    for(i=1;i<=n;i++)
        sum*=i;

    return sum;
}

int main()
{
    int i, n, sum = 0;

    printf("input a number:");
    scanf("%d", &n);

    for (i=1; i<=n; i++)
        sum += foo(i);

    printf("sum=%d\n",sum);

    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濸海月明
2015-01-05 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:62
采纳率:100%
帮助的人:50.7万
展开全部
#include"stdio.h"
int fun(int p){
    int i=1,sum=1;
    for(i=1;i<=p;i++){
        sum *= i;
    }
    return sum;
}
int main()
{
int i,n,sum;
    printf("input a number:",n);
 sum=0;
for(i=1;i<=n;i++)
sum+= fun(i);       //修改的地方
printf("sum=%d\n",sum);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式