** РЕДАКТИРОВАТЬ: в дополнение к ошибкам, указанным ниже, я по ошибке пытался скомпилировать его как проект Win32, согласно этому коду ошибки
1> MSVCRTD.lib (crtexew.obj): ошибка LNK2019: неразрешенный внешний символ WinMain @ 16>, на который ссылается функция _ _tmainCRTStartup
так что кризис предотвращен и домашняя работа завершена. Спасибо всем большое за вашу помощь. надеюсь, я смогу так же заплатить сообществу, когда узнаю вещь или две. **
В этом задании мы должны использовать рекурсию в качестве метода определения того, относится ли слово к палиндрому. Хотя я все еще изо всех сил пытаюсь освоиться с ним как с механизмом решения проблем, кажется, что этот код должен работать иначе. Однако компилятор выдает ошибку «не все пути управления возвращают переменную». Есть идеи?
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
bool palcheck(string word, int first, int last);
int main()
{
ofstream palindrome, NOTpalindrome;
ifstream fin;
string word;
palindrome.open("palindrontest.txt");
NOTpalindrome.open("notPalindronetest.txt");
fin.open("input5.txt"); //list of palindromes, one per line
if (palindrome.fail() || NOTpalindrome.fail() || fin.fail())
return -1;
while (fin >> word)
{
if (palcheck(word, 0, (word.size()-1)) == true)
palindrome << word << endl;
else
NOTpalindrome << word << endl;
}
palindrome.close();
NOTpalindrome.close();
fin.close();
return 0;
}
bool palcheck(string word, int first, int last)
{
if (first >= last)
return true;
else if (word[first] == word[last])
return palcheck(word, first+1, last-1);
else// (word[first] != word[last])
return false;
}