【分享】一些经典的C/C++语言基础算法及代码(四)

来源:互联网 发布:筋长一寸寿延十年 知乎 编辑:程序博客网 时间:2024/05/29 16:41

阅读到的一些经典C/C++语言算法及代码。在此分享。

今天碰到的一个问题:用递归的方式颠倒字符串。

C源代码如下

#include <stdio.h>void Reverse();int main(){    printf("Enter a sentence: \n");    Reverse();    return 0;}void Reverse(){    char c;    scanf("%c", &c);    if( c != '\n')    {        Reverse();        printf("%c", c);    }}

直接翻译为C++

//最后却没有输出,不知道是哪里出问题了,可有高手赐教?#include <iostream>using namespace std;void Reverse();int main(){    cout << "Enter a sentence: " << endl;    Reverse();    return 0;}void Reverse(){    char c;    cin >> c;    if( c != '\n')    {        Reverse();        cout << c;    }}

写成这样子就OK

#include<iostream>using namespace std;void Reverse(char s[], int i){    if(s[i])        Reverse(s,i+1);     //if条件成立,即进行递归    cout << s[i];           //按反序输出字符串中的各个字符}int main(){    char str[100];    cout << "Enter a sentence: " << endl;    cin.getline(str,100);    Reverse(str,0);    cout << endl;}
阅读全文
0 0
原创粉丝点击