c語言計算十以內每個數的階乘的和結果遞迴呼叫時一直在加九的階乘急

時間 2021-08-11 17:46:13

1樓:匿名使用者

額。。你這個可能是 return sum*i+jc(++i);有問題。。

先會執行++i再執行sum*i所以會少一個。。好像與編譯器有關。。我在vc++上執行沒問題,但是以前在linux上好像不行。。

2樓:匿名使用者

不妨把你的程式修改如下:

#include

int i=1,sum=1;

void main()

}int jc(int x) //計算x!的值

3樓:

你函式的引數沒有用上 。也就是說,你的主函式裡a等於10與等於10000是一樣的結果。過有關於++i和i++的區別是這樣的:

前邊是連加在前,當然先算加號後賦值,後者是連加在後,當然是先用舊值,後計算。對於表示式的計算順序,不同編譯器與系統會有不同方法。如:

a+b,如果這裡a和b都是一個表示式,有的會先計算a,有的先計算b。也就說你的函式返回值,有可能在不同的系統上有不同的返回值,是加法的問題,不是自加的問題。當然,你現在的程式主要錯誤在於,你沒有用上函式的引數x,至於修改,應該很容易。

4樓:匿名使用者

#include

int i=1,sum=1;

void main()

int jc(int x)

else

return 0;}

5樓:匿名使用者

vc6.0上表示沒問題!結果 55

6樓:匿名使用者

你這個題目的意思是:輸入5,1!+2!+3!+4!+5!=?

是這個意思嗎?然後我在回答。

7樓:典海祖香薇

第一個return求的是n>1時的階乘,這樣一層一層地找下去,處理遞迴併返回結果。第二個return前面省略了else,也就是當不滿足n>1這個條件時執行的,是判斷遞迴的邊界,返回的是1的階乘的答案,如果沒有這個return,遞迴就沒有邊界,一直進行下去,就會造成棧溢位。

ps:我也是剛學,說的可能不是很好,希望對你有幫助!

c語言計算20的階乘結果要用什麼資料型別

使用 unsigned long long 型別絕對的夠了,下圖是最後的運算結果 unsigned long long 型別是c語言裡面目前精度最高的資料型別,double或者long double 雖然也佔有8個位元組,但是他們的實際精度只有53位,而 unsigned long long 卻有6...

用C語言程式設計求 n以內素數的個數(n10 8)

寫了一個,連寫檔案也只用13秒.ncount 5761455 time 13s include include void main 先假設所有的數都是素數 for i 0 i pbyte 0 false 0不是素數pbyte 1 false 1不是素數pbyte 2 true 2是素數 篩選,所有偶...

C語言求1到10的階乘的和

帥傅香漢戌 程式輸出結果是對的,但是,getch 這句給改一下,getchar 就對了啊,但是我不知道你加這個是說明意思,完全沒有必要的啊。可用不要這句就是的啊。程式就是對的了。輸出結果也是對的。為了驗證,你可以把10改為4,一個小的資料,然後運算驗證一下就可以了。 福清竹普鶯 你試試把for後的兩...