永发信息网

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

答案:4  悬赏:10  手机版
解决时间 2021-12-22 11:36
  • 提问者网友:心牵心
  • 2021-12-21 18:41
求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);
}
哪里出问题了????
最佳答案
  • 五星知识达人网友:詩光轨車
  • 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次
全部回答
  • 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; } 希望能帮助你哈
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯