编辑代码

#include <stdio.h>

#include<string.h>
int binary_search(int arr[],int k,int sz)
{
    int left=0;
    //int right=sz;
    int right=sz-1;
    while(left<=right){
    int mid=(left+right)/2;//找中间的下标元素来进行对比
    if(arr[mid]<k)
        {
            left=mid+1;
        }
    else if(arr[mid]>k)
        {
            right=mid-1;
        }
    else
        {
           return mid;
        }
    }
   
    return -1;
}

    int main(){
        int arr[10]={3,4,5,6,7,9,8,11,3,12};
        int k = 11;
        //int sz= strlen(arr);
        int sz=sizeof(arr)/sizeof(arr[0]);
        int ret=binary_search(arr,k,sz);
        //找到了返回mid,找不到返回-1
        if(ret==-1)
        {
            printf("找不到该数字");
        }
        else
        {
            printf("找到了,下标为:%d",ret);
        }
        	return 0;
    }