Upper Bound Using Binary Search In C