c语言求1!+2!+3!+........+n!的和 我写的哪里出问题了了呢

自己把自己都绕晕了不知道错哪了... 自己把自己都绕晕了 不知道错哪了 展开
 我来答
岔路程序缘

2019-04-12 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3410万
展开全部
看了你的程序,也把我绕晕了。
一、按你的思路,从1到n,建立一个循环(循环变量t),然后建立一个内循环(循环变量i),用于计算t的阶乘,然后累加起来(变量sum),就可以了。
思路比较清晰,但有几处错误:
1、a[100]是来捣乱的吧?去掉!顺便把a[t]=t换成x=1,i<a[t]改成i<t即可。
2、sum=sum+x放错位置了,你想加多少啊。把它移到x=1那里去,顺便把x=1替换了,前面已经有了。
这样可能就行了。程序是:
main()
{
int n,x,sum=0,t,i;
scanf(“%d”,&n);
for(t=1;t<=n;t++)
{
x=1;
for(i=1;i<=t;i++)x*=i;
sum+=x;
}
printf(“%d”,sum);
}
二、其实用一个循环就能解决问题,大大简化程序:
main()
{
int n,x=1,sum=0,t;
scanf(“%d”,&n);
for(t=1;t<=n;t++)
{
x*=t;
sum+=x;
}
printf(“%d”,sum);
}
追问
的确是这样。。。非常感谢
White_MouseYBZ
2019-04-12 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6488万
展开全部

把sum=sum+x;移到}后、x=1;前。

写得也太复杂了,如下就可以了——

int main(void){
    int sum,n,x,t;
    scanf("%d",&n);
    for(sum=0,x=t=1;t<=n;sum+=x*=t++);
    printf("%d\n",sum);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1024程序员
2020-11-13 · TA获得超过374个赞
知道答主
回答量:457
采纳率:0%
帮助的人:22.9万
展开全部

C语言经典例子之求1+2!+3!+...+20!的和

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式