This code is finding all the numbers correctly. Only problem is it's throwing error of "\ expected an exit code of 1, not 0" when the number is not present. Help would be appreciated.
bool search(int value, int values[], int n)
{
int min = 0;
int max = n - 1;
int mid = (max + min) / 2;
if(n <= 0)
{
return false;
}
while (values[max] > values[min])
{
if (values[mid] == value)
{
return true;
}
else if (values[mid] > value)
{
return true;
}
else if (values[mid] < value)
{
return true;
}
else
{
return false;
}
}
return false;
}
Modified code - exactly the same result - finds numbers but wrong exit code when int not present. I also tried removing the else statement but result was an endless loop. Removing final return statement didn't work either.
bool search(int value, int values[], int n)
{
int min = 0;
int max = n-1;
int mid = (max + min) / 2;
if(n <= 0)
{
return false;
}
while (values[max] >= values[min])
{
if (values[mid] == value)
{
return true;
}
else if (values[mid] > value) //value's on the left of mid
{
min = 0;
max = mid - 1;
return true;
}
else if (values[mid] < value) //value's on the right of mid
{
max = n-1;
min = mid + 1;
return true;
}
else
{
return false;
}
}
return false;
}