亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言計算一個數的階乘的程序,為什么只能算到31?

C語言計算一個數的階乘的程序,為什么只能算到31?

C
TYUTssh 2015-11-06 17:22:07
#include<stdio.h> int?reslut(int?n) { ????int?end; ????if(n<0) ????{ ????????printf("輸入錯誤!\n"); ????????return?0; ????} ????else?if(n==0||n==1) ????{ ????????end=1; ????} ????else ????{ ????????end=reslut(n-1)*n; ????} ????return?end; } int?main() { ????int?x; ????scanf("%d",&x); ????printf("%d的階乘是%d\n",x,reslut(x)); ????return?0; }為什么只能算到31?32、33的時候顯示結果為一個負數,34以及更大的數顯示結果為0。小白求教,不懂為什么。
查看完整描述

2 回答

已采納
?
紫泉

TA貢獻26條經驗 獲得超3個贊

31!的階乘已經超過int的最大值了,int的最大值為2的31次方-1,超過的時候就會溢出,變成負數??梢詫nt改成long,或是long long

查看完整回答
反對 回復 2015-11-06
  • TYUTssh
    TYUTssh
    謝謝你,剛學,問的比較low,見諒
?
TYUTssh

TA貢獻1條經驗 獲得超0個贊

rusult寫錯了,見諒

查看完整回答
反對 回復 2015-11-06
  • 2 回答
  • 0 關注
  • 2780 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號