c語言高手來

2022-03-15 16:14:14 字數 1008 閱讀 1061

1樓:

#include

void print(int n);\\函式宣告

void print_n(int n);\\函式宣告

main()

\\主函式呼叫print(int n)函式

void print(int n)\\print(int n)函式體

void print_n(int n)\\print_n(int n)函式體

首先從主函式開始執行,print(4),然後呼叫print(int n)函式,此時n=4,不滿足if(n==0),故不返回,執行下一條語句: print_n(n);,呼叫print_n(int n)函式

同樣,n=4,不滿足if(n==0),故不返回,列印乙個4後執行下一條,print_n(n-1);即print_n(3),呼叫自身,同上面的分析,會列印出3然後print_n(2)......

直到n=1時, if(n>1)不成立,執行者else列印出回車,所以會輸出4321

輸出後又回到了print(int n)函式的if(n>0) print(n-1);同上面的分析會輸出

321回車

全部執行完後會輸出:

4321(回車)

321(回車)

21(回車)

1(回車)

(回車)

2樓:匿名使用者

print和print_n兩個函式都是遞迴呼叫。

3樓:匿名使用者

1)先執行print(4),從而有執行print_n(4),在print_n中當n>1的時候,不斷巢狀呼叫,只至n=1。因此結果為4321

2)第一編完成之後,因為n=3>0,所以繼續完成類似第1)步的過程,得到輸出結果為321

3)同理,有結果為21,

4)同時有結果1

5)此時n=0,在print中滿足if(n==0) return,故結束程式的執行

因此綜上,程式執行結果是

4321

321211

C語言問題,求高手幫忙,C語言問題,求高手幫忙!!

1.輸入輸出問題,在輸入整數或浮點數後面直接輸入字元或字串,要清除一下回車號,或都在輸入整數後直接清空快取,再讀取內容 2.越界問題,修正問題1後,如果記憶體裡沒有連繼的 0 字元,你這程式會嚴重越界 語句 k j 1 前加一句 if c j 0 break 到尾就不要再迴圈了,防止越界 改完後的效...

C語言題目 請C語言高手幫幫忙

include define max 30 定義最長可輸入的數的長度 char num max 定義乙個陣列,用於存放要輸入的字元 main p num p指向陣列第乙個元素 pr p i 1 pr指向陣列最後乙個元素,不含 0 while j i 2 else break 不一樣則退出迴圈 if ...

c語言 高手請指教

你這個程式是不完整的,當然不能生成 從你的 中可以看出,要實現的功能是 在螢幕上輸入3個整數,然後求出它們的和與積 add a,b,c mul a,b,c 是兩個自定義的函式,但是在你的 中,並沒有這兩個函式的宣告和實現。另外,你的程式也沒有輸出 首先來說這肯定不是乙個完整的程式,從這個程式本身來看...