C语言:求1+2!+3!+...+20!的和

求1+2!+3!+...+20!的和#include<stdio.h>main(){longa=0,t=1;inti,k;for(k=1;k<=20;k++)for(i=... 求1+2!+3!+...+20!的和

#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++)
for(i=k;i>0;--i)
t=t*i;
a=a+t;
printf("1+2!+3!+…+20!=%ld",a);
}
哪里出问题了????
展开
 我来答
小屁孩n9
2014-08-29 · TA获得超过460个赞
知道小有建树答主
回答量:413
采纳率:0%
帮助的人:209万
展开全部
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++){
for(i=k;i>0;--i){
t=t*i;
a=a+t;
}
}
printf("1+2!+3!+…+20!=%ld",a);
}

少了大括号,所以循环只执行了t=t*i

而a=a+t作为循环外执行了1次

更多追问追答
追问
可是结果不对啊、、
追答
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=20;k++){
for(i=k;i>0;--i){
    t=t*i;


a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}

其实没仔细看这个,你是想这样括

百度网友2c0046c
推荐于2017-10-11 · TA获得超过2213个赞
知道大有可为答主
回答量:2314
采纳率:50%
帮助的人:1119万
展开全部
#include <stdio.h>
main()
{long a=0,t=1;
int i,k;
for(k=1;k<=10;k++)
{
t=1;
for(i=k;i>0;i--)
t=t*i;
printf("%d\n",t);
a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}
内循环后t重新赋值1;
a=a+t;要再循环里面
追问
结果等于多少啊、貌似还不行啊
追答
你20!超出范围了,你把数定小点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
czf16345
2014-08-29
知道答主
回答量:29
采纳率:0%
帮助的人:11.1万
展开全部
for循环如果不加大括号只作用于下一条语句
所以是不是因为这个
更多追问追答
追问
加上之后结果不太对啊、、
追答
#include 
main()
{
long a=0,t=1;
int i,k;
for(k=1;k0;--i)
{
t=t*i;
}
a=a+t;
}
printf("1+2!+3!+…+20!=%ld",a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式