#include <stdio.h>
int erfen(int arr1[],int n,int zs)
{
int left=0;
int right=zs-1;
while(left<=right)
{
int mid=(left+right)/2;//必须写循环里面,每次循环都要重新计算一下mid的值
if(n<arr1[mid])//arr[mid]是求在mid这个序号的位置元素的值
{
right=mid-1;//mid是指序号,和right还有left一样
}
else if(n>arr1[mid])
{
left=mid+1;
}
else{
return mid;
}
}
return 0;
}
int main()
{
int arr[]={1,2,3,4,5,7,11,24,34,56,67,89};
int k=11;
int sz=sizeof(arr)/sizeof(arr[0]);
int ret=erfen(arr,k,sz);//调用循环
if(ret==0)
{
printf("找不到");
}
else
{
printf("找到了,位置是%d",ret);
}
return 0;
}