2016-10-28 2 views
-1

рекурсивная функция палиндром это есть меня решение вопроса mistack в моем растворе не палиндром часть не печатаетрекурсивная функция палиндром

#include<iostream> 
#include<cstring> 
using namespace std; 

bool ispalindrome(char string1[],int length); 
int main() 
{ 
    string word; 
    cout<<"Enter a word: "; 
    cin>> word; 

    if(ispalindrome) 
    cout<<"The input word is palindrome"; 
    else 
    cout<<"The input word is NOT palindrome"; 

    return 0; 
    } 

    bool ispalindrome(char string1[],int length) 
    { 

if(length<=1) 
    return true; 
if ((*string1)==string1[length-1]) 
return ispalindrome(string1+1, length-2); 

else return false; 

} 

ответ

0

Вам нужно вызвать метод ispalindrome(word, strlen(word)) внутри if заявления.

Так оно и должно выглядеть следующим образом

if (ispalindrome(word, strlen(word)) { 
    cout << word << " is a palindrome" << endl; 
} else { 
    cout << word << " is not a palindrome" << endl; 
} 

Кроме того, пребывание в соответствии с вашим типом. word должен быть массивом char, а не string.

+0

Когда я вступил в то, что вы написали, ошибка появилась, он находится в этой ссылке http://store2.up-00.com/2016-10/1477696622041.png –

+0

@ sh.alzoubi Вот почему я сказал, что вы должны быть в соответствии с вашими типами. 'word' должно быть объявлено как' char * word = new char [1024] ', тогда у вас не будет проблем с типом. –

+0

Я меняю слово на char, и это ошибки, которые я получил http://store2.up-00.com/2016-10/1477749413741.png –

Смежные вопросы