[問題] 遞迴的問題

看板C_and_CPP作者 (severus)時間14年前 (2010/06/04 19:56), 編輯推噓1(105)
留言6則, 6人參與, 最新討論串2/2 (看更多)
最近發現遞迴的程式中 有的有return有的沒有 例如: int factorial(int j) { if(n==1) return(1); else return(n*factorial(n-1)); } 以上這個是有return的 (in Binary Search Tree) void Print(Node *x, FILE *output) { if (x != NULL) { fprintf(output, "%d ", x->key); Print(x->left, output); Print(x->right, output); } } 以上這個是沒有return的 兩種都是遞迴 我都可以看的懂 但是卻無法很明確的說出為何一個有return一個沒有 有沒有人可以用個簡單的例子為我解說一下? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.48.111

06/04 19:58, , 1F
void ...
06/04 19:58, 1F

06/04 19:59, , 2F
取決於是否需要拿函數運算完的結果。
06/04 19:59, 2F

06/04 19:59, , 3F
看功能啊=.=
06/04 19:59, 3F

06/04 19:59, , 4F
樓上的答案…簡單明瞭
06/04 19:59, 4F

06/04 20:02, , 5F
耶~ 我懂了 一樓點醒了我Orz
06/04 20:02, 5F

06/06 22:39, , 6F
個人習慣void還是會加return;
06/06 22:39, 6F
文章代碼(AID): #1C2Ed-ah (C_and_CPP)
文章代碼(AID): #1C2Ed-ah (C_and_CPP)