double* binary_search(double needle, double* hay_begin, double* hay_end) { int m
ID: 3545982 • Letter: D
Question
double* binary_search(double needle, double* hay_begin, double* hay_end)
{
int middle;
double* needptr; //assume won't be found
bool found = false;
while (!found && hay_begin <= hay_end)// not found and score might still be in list
{
middle = (hay_end - hay_begin) / 2; // center between left & right
if (needle < *(hay_begin + middle))// searchValue might be found to the left of finalExams[mid]
hay_end = hay_end - middle - 1;
else if (needle > *(hay_begin + middle))// searchValue might be found to the right finalExams[mid]
hay_begin = hay_begin + middle + 1;
else if(needle == *(hay_begin + middle))// searchValue is finalExams[mid]
found = true;
} // end while
if (found)//found score
{
*needptr = *hay_begin + middle;
}
else
*needptr = 0.0;
return needptr;
}
Here is my code, I already point hay_begin and hay_end to the first element and last element of array in main function. While I am running this code,it shows me Segmentation fault. I can't figure out which part I got a problem. This assignment ask me return a pointer if the value is found or return a 0. Can anybody help me?