Can you fix this code . Make this code run: const int size=10; int BinarySearch(
ID: 3629286 • Letter: C
Question
Can you fix this code . Make this code run:const int size=10;
int BinarySearch(int array[], int numElems, int value)
{
int first = 0, last = numElems - 1, middle, position = -1;
bool found = false;
while (!found && first <= last)
{
middle = (first + last) / 2;
if (array[middle] == value)
{
found = true;
position = middle;
}
else if (array[middle] > value)
last = middle - 1;
else
first = middle + 1;
}
return position;
}
int main()
{
int *numbers;
int N;
int count;
int results;
cout<<"How many lottery tickets were purchased?:";
cin>> N;
numbers= new int[N];
cout<<" Enter winning lottery ticket's numbers... ";
for (count=0; count<N; count++)
{
cout<<"Winning Number Lottery ticket #"<<(count+1)<<": ";
cin>>numbers[count];
}
for (count=0; count<N; count++)
{
cout<<" Enter your lottery number:";
cin>>results;
if (results == 0)
{
cout<<"Quitting Program ";
break;
}
int k=BinarySearch(numbers,N,results);
if (k == 1)
cout<<"Winner! ";
else
cout<<"Loser! ";
}
return 0;
}
Explanation / Answer
const int size=10;
int BinarySearch(int array[], int numElems, int value)
{
int first = 0, last = numElems - 1, middle, position = -1;
bool found = false;
while (!found && first <= last)
{
middle = (first + last) / 2;
if (array[middle] == value)
{
found = true;
position = middle;
}
else if (array[middle] > value)
last = middle - 1;
else
first = middle + 1;
}
return position;
}
int main()
{
int *numbers;
int N;
int count;
int results;
cout<<"How many lottery tickets were purchased?:";
cin>> N;
numbers= new int[N];
cout<<" Enter winning lottery ticket's numbers... ";
for (count=0; count<N; count++)
{
cout<<"Winning Number Lottery ticket #"<<(count+1)<<": ";
cin>>numbers[count];
}
cout<<" Enter your lottery number:";
cin>>results;
if (results == 0)
{
cout<<"Quitting Program ";
break;
}
int k=BinarySearch(numbers,N,results);
if (k>=0)
cout<<"Winner! ";
else
cout<<"Loser! ";
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.