1樓:流浪者
結果是對的。
首先,funs()定在呼叫的時候形成了遞迴,所以算出來的結果就不會是5+5-1。
其次,你的程式的過程可以表達為5+(4+(3+2)),也就是說你在funs()裡遞迴呼叫了funs()。
在做c語言程式的時候,一定要理清思路,避免不應出現的遞迴,以免形成死迴圈,你這個呼叫如果引數錯誤,很容易出錯。
第三,按你的要求,結果是9的話,正確做法funs()定義return(n-1),main()裡呼叫print(n+funs(n))
2樓:匿名使用者
這是遞迴函式,不是隻執行一次,唉,怕你不明白,再解釋下吧,就是n=5,funs(n-1)=9,n+funs(n-1)=5+9=14,這回明白沒?
3樓:匿名使用者
在這個題中,fun()函式發生了遞迴
呼叫,即函式自己呼叫自己。在滿足發生遞迴的條件時,遞迴呼叫是以逐層巢狀的:形式進入,直到遞迴條件不再滿足,再由最內層開始依次逐層退出。
遞迴呼叫發生的次數由發生遞迴的條件所決定。本題中 n=5,進入fun(5)後,會繼續發生fun(4)、fun(3)呼叫,然後由內層依次返回,程式執行過程如下:
第1次呼叫 : n=5,執行5+fun(4)第2次呼叫 : n=4,執行4+fun(3)第3次呼叫 :
n=3,執行3+fun(2)笫1次返回 : 退出笫3次呼叫,返回值 3+2=5第2次返回 : 退出第2次呼叫,返回值 4+5=9第3次返回 :
退出第1次呼叫,返回值 5+9=14所以主程式輸出s=14。
4樓:梅髏鯊
這是遞迴,funs函式一直呼叫自身,就是funs函式中再不斷執行funs函式,所以n一直減到2結束呼叫,結果是5+4+3+2=14
5樓:匿名使用者
這是條件求和,滿足條件直行,負責就的到下面的大版。
6樓:我陌路我自己
學姐多好的機會大漢帝國,或者**號俗話說得好,還真是是好事。收到回話是個啥就是,好好在家收到回**,畫中畫說的很對。實踐活動回**,好實話實說不上班。
7樓:匿名使用者
這是迴圈語句問題,不是隻執行一次,重新看書吧!
8樓:我是老才不壞
你這問題可難壞了我,我怎麼能幫助你呢?瞧瞧,你提出的問題滿是英文,我連一天英語課都沒上過,我連abc都不知道是幹什麼的!拜託了兄弟,以後不要在這平臺上出現英語的問題,可難壞了我喲。
c語言問題,求解答。
9樓:匿名使用者
這個程式是要用輾轉相除法求u、v兩個數的最大公約數。
但是程式的演算法,只有當u≥v時才能正確求解。如果輸入的u小、v大,則無法得到正確的結果。也就是說前面缺少一步排序。
c語言問題 求解答這答題,第10題?
10樓:匿名使用者
代入得
(3&&-4)==(3||5)左邊括號表示式為假,值0;右邊括號表示式為真,值1;得出下式0==1表示式為假,值0。
c語言問題求解答如圖
11樓:科里奧利
你的計算是沒錯的,但是流程有一個地方你沒注意到,比如說,你的a就算出來之後是v,但是這時候,你又做了一個判斷,這個v是大於f小於z的,所以又減了5,成了q,不知道你明白沒有,解決辦法就是,第二個if前面加一個else就好了
滿意請採納
12樓:匿名使用者
排列的規律是按26個大寫字母的順序迴圈,右移二十一位
因此可直接表示為:
(str[k][j]-'a'+21)%26+'a'
C語言小問題,關於,關於C語言的小問題?
a b max a max b 語法錯誤,該為 a b max a max b 另外注意 printf 最大值為 c n c 改正為printf 最大值為 d n c 已測試關於i 和 i的區別,如果沒有賦值的話,他們結果是沒區別的,關於他們的區別,我舉例說明 1 int i 0,a a i 這裡結...
C語言的小問題,C語言的一個小問題
for迴圈的結構如下 for 語句1 語句2 語句3 其中語句1用來對迴圈變數進行初始化,例如i 0 或者i 0,j 1 等等。語句2用來控制迴圈條件,例如i 100 等,表示如果迴圈變數滿足這個條件的時候,迴圈一直進行下去,直到迴圈變數不滿足條件為止。語句3一般用來對迴圈變數進行修改,例如i 等,...
C語言問題C語言問題,C語言小問題段錯誤是什麼
str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...