#include<stdio.h>

/* Return location of item in array if found, else returns -1 */
int binsearch(float a[], int n, float item)
{
  int start=0, end=n-1, mid;

  if(n==0)
    return -1;

  do
    {
      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;
	}

    }while(start<=end);

    return -1;


}


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);


}

