Any advice on how to solve this problem? My code finds some numbers but not others and times out at the end of the check 50 check.
Below is my code for helpers.c
/**
* helpers.c
*
* Helper functions for Problem Set 3.
*/
#include <cs50.h>
#include "helpers.h"
/**
* Returns true if value is in array of n values, else false.
*/
bool search(int value, int values[], int n)
{
int start = 0;
int end = n - 1;
while (start <= end)
{
int mid = (start + end) / 2;
if (values[mid] == value)
{
return true;
}
else if (value < values[mid])
{
end = mid - 1;
}
else
{
start = mid + 1;
}
}
return false;
}
/**
* Sorts array of n values.
*/
void sort(int values[], int n)
{
int i, temp, swapped;
swapped = 0;
while(1)
{
for (i = 0; i < n - 1; i++)
{
if (values[i] > values[i + 1] )
{
temp = values[i];
values[i] = values[i + 1];
values[i + 1] = temp;
swapped = 1;
}
}
if (swapped == 0)
{
break;
}
}
}
The check50 result:
:) helpers.c exists.
:) helpers.c compiles.
:( sorts {5,4,3,2,1}
did not find "1"
:( sorts {5,3,1,2,4,6}
did not find "1"
:) finds 28 in {28,29,30}
:) finds 28 in {27,28,29}
:) finds 28 in {26,27,28}
:) finds 28 in {27,28,29,30}
:) finds 28 in {26,27,28,29}
:) finds 28 in {25,26,27,28}
:) doesn't find 28 in {25,26,27}
:) doesn't find 28 in {25,26,27,29}
:) doesn't find 28 in {29,30,31,32}
:) doesn't find 28 in {29, 30, 31}
:( finds 28 in {30,27,28,26}
timed out while waiting for program to exit
Thanks in advance.