求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);
}
哪里出问题了????
C语言:求1+2!+3!+...+20!的和
答案:4 悬赏:10 手机版
解决时间 2021-12-22 11:36
- 提问者网友:心牵心
- 2021-12-21 18:41
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-12-21 19:27
#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次
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次
全部回答
- 1楼网友:人類模型
- 2021-12-21 21:49
#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;要再循环里面
- 2楼网友:话散在刀尖上
- 2021-12-21 21:11
for循环如果不加大括号只作用于下一条语句
所以是不是因为这个
- 3楼网友:低音帝王
- 2021-12-21 20:52
楼主你好
代码修改如下:
#include
int main()
{
float i,index=1,sum=1;
for(i=1;i<=20;i++)
{
index*=i;//保存每一项的阶乘
sum+=index;//加上每一项的阶乘
}
printf("%e\n",sum);
return 0;
}
希望能帮助你哈
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯