Я хочу найти Palindrome слова. Что здесь не так?Найти Palindrome
Основная функция:
int size;
string input;
cin>>input;
size = input.length();
if(testPalindrome(input,size-1,0))
cout<<"It's Palindrome";
else
cout<<"It's not Palindrome";
И функция testPalindrome является:
bool testPalindrome (string pal , int last, int first){
if (pal[first] != pal[last])
return false;
else{
if (first<last)
testPalindrome(pal,last-1,first+1);
else
return true;
}
}
Я прочитал this link и нашел ответ для определения палиндромов, но почему это один не работает?
Похоже, вам, возможно, потребуется научиться использовать отладчик для шага t через ваш код. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: ** [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
В вашем 'testPalindrome'е есть пути, которые ничего не возвращает. Это приводит к * неопределенному поведению *. Хороший компилятор должен был кричать на вас за это. –
Пожалуйста, будьте более конкретными, чем «не работает». Существует множество способов, которыми программа «не работает». – molbdnilo