#include<stdio.h>
void binsrch(int x, int *a, int n) {
int i=0, j=n-1, k=0;
do{
k=(i+j)/2;
if(a[k] < x)
i = k;
else if (a[k] > x)
j = k;
}while(a[k]!=x && i<j);
if (a[k]==x)
printf("x is in the array\nPosition of x=%d is at index=%d\n",x
,k
); else
printf("x is not in the array\n"); }
int main(){
int a[] = {4,5,6,7,8,9,10};
binsrch(7,a,sizeof(a)/sizeof(int));
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4Kdm9pZCBiaW5zcmNoKGludCB4LCBpbnQgKmEsIGludCBuKSB7CiAgICBpbnQgaT0wLCBqPW4tMSwgaz0wOyAKICAgIGRvewogICAgICAgIGs9KGkraikvMjsKICAgICAgICBpZihhW2tdIDwgeCkKICAgICAgICAgICAgaSA9IGs7CiAgICAgICAgZWxzZSBpZiAoYVtrXSA+IHgpCiAgICAgICAgICAgIGogPSBrOwogICAgfXdoaWxlKGFba10hPXggJiYgaTxqKTsKICAgIAogICAgaWYgKGFba109PXgpCiAgICAgICAgcHJpbnRmKCJ4IGlzIGluIHRoZSBhcnJheVxuUG9zaXRpb24gb2YgeD0lZCBpcyBhdCBpbmRleD0lZFxuIix4LGspOwogICAgZWxzZQogICAgICAgIHByaW50ZigieCBpcyBub3QgaW4gdGhlIGFycmF5XG4iKTsKfQoKaW50IG1haW4oKXsKICAgIGludCBhW10gPSB7NCw1LDYsNyw4LDksMTB9OwogICAgYmluc3JjaCg3LGEsc2l6ZW9mKGEpL3NpemVvZihpbnQpKTsKICAgIHJldHVybiAwOwp9Cg==