遞迴演算法實現字串反序輸出,求解,為什麼

時間 2021-05-07 20:00:40

1樓:new妞寧

是反序的

比方說現在s指向字串123

呼叫reverse(123)

然後判斷不為空 呼叫 reverse(23)

23不為空

呼叫3此時3也不為空,呼叫reverse(3的下一位字元,此時為空了)

判斷為空,則else return啦 ,此時返回到reverse(3)的函式體裡呼叫reverse(空)的語句處,後執行cout<<*s,則輸出3

此時reverse(3)執行完畢,返回到reverse(23)函式體中,執行cout<<*s;此時s為指向23字串的首地址,則*s為字串的第一個字元,輸出2

reverse(23)呼叫結束,返回到reverse(123)處,執行cout<<*s;;此時s為指向123字串的首地址,則*s為字串的第一個字元,輸出1

整個過程結束

看懂了沒有

關鍵在 cout<<*s 每次輸出的是字串的第一個字元,而在輸出此字元前他後面的字元已經輸出了

2樓:風若遠去何人留

*s為0時 即字串結尾

比如字串為test那麼儲存的時候就是t e s t \0 這個\0就是ascii 0

執行的時候會是

判斷t 執行reverse e

判斷e 執行reverse s

判斷s 執行reverse t

判斷t 執行reverse 0

判斷0 直接返回

輸出t輸出s

輸出e輸出t

這樣就反序了

3樓:萬楊

遞迴函式的呼叫,當第一個*s不為零時,就再次呼叫reverse(s+1),不是執行下面的cout,而是繼續呼叫reverse()函式,直到return終止後,開始輸出。相當於一個棧的形式,棧是後進先出的原則,就是最後一次呼叫reverse()函式時,s是指向字串最後一個字元。

4樓:匿名使用者

不是,你可以舉個例子比如char s = "abc"

當做引數傳入,把函式呼叫的地方,用**替換,看下過程就明白了

c語言:採用遞迴方法實現將輸入的字串按反序輸出

5樓:不傻不笨不弱智

#include

void f()

void main()

6樓:手機使用者

先寫第一個

#include "stdio.h"

main()

sum=sum+n;

printf("sum is:%d",sum);

getch();}

c++ 遞迴函式實現使輸入的字串按逆序輸出。請問該函式是如何實現遞迴的,求詳細解釋

7樓:素筆描靑花

函式用的是系統棧,棧的特點是先進後出

假設 str = "abcde";

遞迴函式當未達到末尾的'\0'時,就呼叫下一個字元的列印函式(這些就逐一儲存在棧中,最先遍歷到的在最底下,先遍歷的總是在後遍歷的下邊)

到了str[i] == '\0' 的時候,不符合遞迴條件,就出棧,其實棧內儲存的是print()函式和每個字元的地址,你可以想象一下,出棧的時候,從上到下,應該是"e d c b a"是吧,這樣依次列印,順序就自然而然逆序了

運用遞迴反序輸出字元陣列裡面的函式 求大神解釋

8樓:匿名使用者

void func(char *s,int n)

c語言:編寫函式,採用遞迴方法實現將輸入的字串按反序輸出。

9樓:匿名使用者

void f()

----------------

以回車結束

10樓:

#include

void fun(char *s)

}void main()

11樓:匿名使用者

void p(char *a,int i)

什麼是遞迴函式?怎樣實現遞迴,遞迴函式F n 的遞迴演算法是什麼

假面 遞迴就是一個函式在它的函式體內呼叫它自身。執行遞迴函式將反覆呼叫其自身,每呼叫一次就進入新的一層。遞迴函式必須有結束條件。當函式在一直遞推,直到遇到牆後返回,這個牆就是結束條件。所以遞迴要有兩個要素,結束條件與遞推關係。遞迴有兩個基本要素 1 邊界條件 確定遞迴到何時終止,也稱為遞迴出口。2 ...

求pascal遞迴演算法教程,free pascal用遞迴的方法編寫函式求fibonacci級數

我也不會。我學c和c 的。抱歉 free pascal用遞迴的方法編寫函式求fibonacci級數 function fibonacci n integer int64 begin if n 0 or n 1 then fibonacci 1else fibonacci fibonacci n 1 ...

kmeans演算法用Python怎麼實現

混小子愛 參考 kmeans演算法用python怎麼實現 k means聚類演算法python實現,匯入的資料集有什麼要求 一,k means聚類演算法原理 k means 演算法接受引數 k 然後將事先輸入的n個資料物件劃分為 k個聚類以便使得所獲得的聚類滿足 同一聚類中的物件相似度較高 而不同聚...