二分查找法使用for循环的实现,代码同时输出了既找得到又找不到,不能正常找到每一个定义的元素

#include<stdio.h>
int main(void)
{
    int arr[]={1,2,3,4,5};
    int len=sizeof(arr)/sizeof(arr[0]);
    int left=arr[0];
    int right=len-1;
    int number=2;
    int mid=0;
    int i;
    for(i=0;i!=arr[mid];i++)
    {
        mid=(left+right)/2;
        if(number>arr[mid])
        {
            left=mid+1;
        }
        else if(number<arr[mid])
        {
            right=mid-1;
        }
        {
        if(number==arr[mid])
        {
            printf("找到了 %d\n",arr[mid]);
        }
        else
        {
            printf("找不到\n");
        }
    }
    }
}

 int left=arr[0];这里错了, 应该是int left=0;

如有帮助,请采纳一下,谢谢。

结果输出 找不到 找到了2