it is what arunmoezhi said, you need to return your calls (recursive function) if not your result will banish and the next phase is returning false thats why you always get false.
bool binarySearch(int key, int array[], int min, int max)
{
int midPoint = findMidPoint(min, max);
if (max < min)
return false;
if (array[midPoint] < key)
{
return binarySearch(key, array, midPoint + 1, max);
}
else if (array[midPoint] > key)
{
return binarySearch(key, array, min, midPoint - 1);
}
else if (array[midPoint] == key)
{
return true;
}
return false;
}