1樓:匿名使用者
1全部因為是遞迴呼叫,是從外層到裡層,在從裡層到外層這個程式先呼叫fun(6);此時x的值為6,因為x/2>0為真繼續呼叫fun(x/2); 此時函式引數變為3,即相當於函式中的x等於3,因為3/2=1>0,為真,繼續呼叫fun(x/2); 此時函式引數變為1,1/2=0>0為假,執行printf("%d\n",x); 此時x
的值為1,輸出1,然後在一層一層返回,分別輸出3、6所以最終結果是1 3 6
2樓:
用陣列儲存起來,fun(x/2)計算的結果按序儲存到陣列,然後利用迴圈倒著輸出陣列.
3樓:匿名使用者
輸出是136 你想要631嗎?
把fun函式的printf語句放在if語句的前面就能輸出631了
4樓:
回去好好看看遞迴呼叫。
5樓:z周云云
fun(int x)
main()
這是乙個遞迴呼叫
一:fun(6),此時x=6,x/2= 3>0,呼叫fun(6/2),此時x為6
二:fun(3),此時x=3,x/2=1>0.....
最後的輸出結果是從最後乙個x向上翻!!
所以最終結果是1 3 6
知道懂得了第一步,下面的你就會自己看明白的!!
C語言輸出格式問題啊,C語言輸出格式問題啊 50
1234567,4553207,12d687,1234567 u 無符號整型輸出十進位制數 u 轉換成八進位制數輸出 x 轉換成十六進位制數輸出 d 按整型輸出 最後有一個下一行的標誌 其他的都是固定的格式咯 簡單那 加油 多看書 挽ag181818v繪 在visual studio 6.0中輸出 ...
C 中輸出問題
樓主,你的排序是對的,輸入時用空格隔開就可以,中間多輸出的部分你看看我程式中給你注釋的部分,希望你能真正掌握選擇排序法。謝謝 include stdio.h int main printf d,d n a i a k 你這裡列印的是每i排序之後的a i 和每趟最小值的下標。以 2,3,1,5,6為例...
c語言的輸出格式控制問題,C語言的輸出格式控制問題。
心雲細雨 用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格 1 一般格式 printf 格式控制,輸出表列 例如 printf i d,ch c n i,ch 說明 1 格式控制 是用雙撇號括起來的字串,也稱 轉換控制字串 它包括兩種...