int BinarySearch(int A[], int p, int r, int value)
{
int q = (p + r) / 2;
if (A[q] == value)
{
return q; //value found
}
if (p == q)
{
return 0; //not found
}
if (A[q] > value)
{
return BinarySearch(A, p, q, value);
}
else
{
return BinarySearch(A, q + 1, r, value);
}
} //binary search ends here
Now, the problem is that whenever I want to search the last element of an array, this code gives an error. can anyone please explain why?