[問題] 為什麼結果會是倒著印呢?

看板C_and_CPP作者 (travis)時間15年前 (2010/07/18 23:50), 編輯推噓2(208)
留言10則, 6人參與, 最新討論串1/4 (看更多)
大家好,今天在螞蟻的第6張遇到了問題,題目是下面的程式碼結果會是如何? 問題:為什麼結果是倒著印? #include<stdio.h> #include<stdlib.h> #define SIZE 10 int w( const int b[], int p , int k ); int main( void ){ int x ; int a[SIZE]={1,2,3,4,5,6,7,8,9,10}; x = w( a , 0 , SIZE ); printf( "\n" ); system ( "pause" ); return 0; } int w( const int b[] , int p , int k ){ if( p < k ){ w( b , p+1 , k ) ; printf( "%d " , b[p] ); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.20.104

07/18 23:51, , 1F
快點逐步執行!
07/18 23:51, 1F

07/18 23:52, , 2F
何不自己step by step trace一遍code, 就知道為什麼了:)
07/18 23:52, 2F

07/18 23:52, , 3F
記得遇到function要step in, trace自然就懂為什麼了.
07/18 23:52, 3F

07/18 23:52, , 4F
因為先呼叫 w( b , p+1 , k ) ; 後面的印完才用printf
07/18 23:52, 4F

07/18 23:52, , 5F
印當前的值
07/18 23:52, 5F

07/18 23:57, , 6F
公告因為遞迴
07/18 23:57, 6F

07/18 23:58, , 7F
怎麼多了"公告"兩個字 囧 Sorry
07/18 23:58, 7F

07/18 23:59, , 8F
樓上...XD
07/18 23:59, 8F

07/19 00:00, , 9F
樓樓上亂公告(誤
07/19 00:00, 9F

07/19 23:41, , 10F
的確是先跑完遞迴在printf.....囧
07/19 23:41, 10F
文章代碼(AID): #1CGoBGgJ (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1CGoBGgJ (C_and_CPP)