c语言阶乘出现负的,C语言求1到20阶乘的和,出来的是负数
優質回答 回答者:polkmn145678
long double 改為 double,
%d 改為%lf#include
intmain()
{
doubles=0,t=1,n;
for(n=1;n<=20;n++)
{
t*=n;
s+=t;
}
printf("1!+2!+3!+...+20!=%.0lf\n",s);
return0;
}
//輸出:1!+2!+3!+...+20!=2561327494111820288
另外,你的程序求的是 19!。
-----------------------------------------------------------------
回答者:笑妮妮
溢出整數范圍而已。
long double 改為long long,最后printf用llf ,別問為什么,我也不知道,程序硬性要求,int用%d,long用ld,long long 用lld
輸出控制符,你們老師應該講過的。
-----------------------------------------------------------------
回答者:安涼生啊
printf("1!+2!+3!+...+20!=%d\n",s);
改成
printf("1!+2!+3!+...+20!=%.0lf\n",s);
double輸出的時候不是%d 是 lf
TAGS: 負數的階乘
總結
以上是生活随笔為你收集整理的c语言阶乘出现负的,C语言求1到20阶乘的和,出来的是负数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《OpenDRIVE1.6规格文档》1
- 下一篇: MapGIS10.3Desktop64位