#include<stdio.h>


int binsearch_rec(float a[], int n, float item, int start, int end);

/* Return location of item in array if found, else returns -1 */
int binsearch(float a[], int n, float item)
{
  return binsearch_rec(a, n, item, 0, n-1);
}


int binsearch_rec(float a[], int n, float item, int start, int end)
{
  int mid;

  if(start>end)
    return -1;

  if(n==0)
    return -1;

  mid=(start+end)/2;

  if(a[mid]==item)
    return mid;
  else
    {
      if(a[mid]>item)
	end=mid-1;
      else   /* (a[mid]<item) */
	start=mid+1;

      return binsearch_rec(a, n, item, start, end);
	  
    }


}



void main()
{
  const int MAX=7;
  float a[MAX], elem;
  int i;

  printf("\n Enter %d numbers in ascending order:\n", MAX);

  for(i=0; i<MAX; i++)
    scanf("%f", &a[i]);

  printf("\n Enter element to search for: ");
  scanf("%f", &elem);

  i=binsearch(a, MAX, elem);

  if(i!=-1)
    printf("\n %f found in index %d\n", elem, i);
  else
    printf("\n %f not found\n", elem);


}

