これは単純な再帰回文テストであり、それ自体で機能しますが、関数が実際に何を返すかに関係なく 0 を返します。これが私のコードです。デバッグ cout ステートメントを残したので、実際に機能することがわかります。
bool pal(int l, int r, char *a)
{
if(l >= r)
{
cout << "returning true" << endl;
return true;
}
if(a[l] != a[r])
{
cout << "returning false" << endl;
return false;
}
pal(l+1, r-1, a);
}