作业帮 > 综合 > 作业

C语言求1到20阶乘的和,出来的是负数

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/05 00:12:57
C语言求1到20阶乘的和,出来的是负数
代码如下
#include
main()
{
long double s=-1,i,n,t=1;
for(n=1;n0;i--)
t=t*i;
}
printf("1!+2!+3!+...+20!=%d\n",s);
return 0;
}
C语言求1到20阶乘的和,出来的是负数
long double 改为 double,%d 改为 %lf #include <stdio.h>

int main()
{
  double s = 0, t = 1, n;
  for (n = 1; n <= 20; n++)
  {
    t *= n;
    s += t;
  }
  printf("1!+2!+3!+...+20! = %.0lf\n",s);
  return 0;
}
// 输出:1!+2!+3!+...+20! = 2561327494111820288 另外,你的程序求的是 19!.
再问: 为什么要改为double?long double不是包括double吗? 整数为什么要用浮点%lf for那里是n