因為沒什麼題材
在網絡逛街時,看到一個寫得不錯的遞迴
這一個程式是利用遞迴作倒相輸出
其實遞迴也可以用作簡單的加密
=================分格線=================
我們來看看程式碼
void TurnBack()
{
char sentence;
scanf("%c", &sentence);
if( sentence != '\n'){
TurnBack();
printf("%c",sentence);
} }
int main()
{
printf("Enter a sentence: ");
TurnBack();
return 0;
}
我們在使用遞迴時,需要有兩大守則
[1]每次return,問題範圍會縮小
[2]問題有結束的條件
如果不遵守這兩大守則,function會產生無窮循環 ( 變成while(1) )
=================分格線=================
利用char資料形態,來處理字串
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
新手使用遞迴前,需要把程式的思緒弄清晰
sentence != '\n'
程式只要非"\n"的字元,就會一直呼叫function
而我們所輸入的"Enter",即電腦的"\n"
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TurnBack();
printf("%c",sentence);
程式是先呼叫,後輸出
而達到倒相輸出的效果
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
但由於程式呼叫下一層,在滿足結束條件後,會往回上一層
因此程式所執行的時間會較長、效率比較低