1樓:流13氓2兔
我這有乙個算100的階乘的程式,你可以看一下100的階乘是多少;數值太大了,你的longdouble根本裝不下,可能是你超過了它的取值範圍,本來數的符號位也被進製了,所以系統判定為負數
#include
int main()
;int bits1=1;
int i,j,n;
printf("請輸入乙個數\n");
scanf("%d",&n);
for (i=1;i<=n;i++)}}
printf("bits1=%d\n",bits1);
for(i=bits1-1;i>=0;i--)printf("%d",a[i]);
printf("\n");
getchar();
}return 0;}
2樓:我叫馳子
用整數已經溢位了,可以用double,用「%e」,科學技術法來輸出,結果為9.426900+e157;
#include
#include
int main()
sum=temp+sum;
temp=1;
}printf("%e",sum);}
3樓:匿名使用者
這種現象叫溢位。longlong在64位的範圍應該是[-2^63 ,2^63],既-9223372036854775808~9223372036854775807。
可以事先貼出結果,已經遠超這個範圍了:
**如下:
#include
#define size 100//預估位數int main()
}//printf("已進行至%-3d級階乘|\n",i);位數過大時使用
}printf("the answer is ");
for(i = size - 1;i >= 0;i--)return 0;}
4樓:匿名使用者
資料型別用:
unsigned long
格式化輸出的時候:
%lu否則輸出資料會溢位
%lf明顯資料溢位才會這樣。
如果 unsigned long還存不下,用 unsigned long long
格式化輸出:
%llu
5樓:64328啊
這麼多你還階乘!肯定是越界了啊!
急c語言階乘問題 求一到一百的階乘和 用while或w
include include include include using namespace std const int maxn 510 char re maxn struct big void read void print big operator big a big operator bi...
C語言求1到10的階乘的和
帥傅香漢戌 程式輸出結果是對的,但是,getch 這句給改一下,getchar 就對了啊,但是我不知道你加這個是說明意思,完全沒有必要的啊。可用不要這句就是的啊。程式就是對的了。輸出結果也是對的。為了驗證,你可以把10改為4,一個小的資料,然後運算驗證一下就可以了。 福清竹普鶯 你試試把for後的兩...
c語言如何求數的階乘,c語言如何求一個數的階乘 5
果果和糰子 n的階乘就是從1到的累積,所以可以通過一個for迴圈,從1到n依次求積即可。include stdio.h int main int n,i,s 1 scanf d n for i 1 i n i for迴圈求累積s s i printf d n s return 0 執行結果 例如求5...