2017-10-22 9 views
-3
#include <stdio.h> 
void reverseSentence(); 

int main() 
{ 
    printf("Enter a sentence: "); 
    reverseSentence(); 

    return 0; 
} 

void reverseSentence() 
{ 
    char c; 
    scanf("%c", &c); 

    if(c != '\n') 
    { 
     reverseSentence(); 
     printf("%c",c); 
    } 
} 

私は関数が最後の '\ n'文字までユーザーが入力したすべての文字を格納できることを知っています。しかし、私はプログラムが最後の文字をどのように印刷し、最初の文字を出力するまでreverseSentence()に戻ることができるのか分かりません。誰もそれを一歩一歩説明するのを助けることができますか?この再帰プログラムは、すべての文字を逆にすることができます

+1

[ヘルプページ](http://stackoverflow.com/help)、特に[ここではどのトピックについてここで聞くことができますか?](http: /stackoverflow.com/help/on-topic)と[[どのような種類の質問を避けるべきですか?]](http://stackoverflow.com/help/dont-ask)を参照してください。また、[ツアーを受けてください](http://stackoverflow.com/tour)と[良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)もご覧ください。最後に、[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)の作成方法を学んでください。 –

+2

** ab **と入力してください。機能を実行して、** a **がいつ印刷されるかを考えてください。 –

答えて

0

配列の文字を反転する方法は複数あります。これは私のコードで、文字列を逆にするために、あなたの質問に答えるのを助けてくれることを願っています。

#include<stdio.h> 
#include<string.h> 

int main() 

{ 
    char string[]="Reverse String"; 
    char new[20]; 
    int count=0; 
    int i,j; 
    i=0; 
    j=strlen(string)-1; 

while(string[count]!='\0') 
    { 
    new[i]=string[j]; 
    i++; 
    j--; 
    count++; 
    } 
printf("%s\n",new); 

    for(i=0;i<strlen(string);i++) 
    { 
    printf("%c",new[i]); 
    } 
} 
関連する問題