C语言求1到20阶乘的和,出来的是负数
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/19 12:15:43
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;
}
代码如下
#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;
}
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
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