c语言中的数组二分法

img
这里是哪里错了呢?

问题不少,详情私信
参考:

#include <stdio.h>

int main()
{
    int arr[]={0,1,2,3,4};
    int height=sizeof(arr)/sizeof(arr[0]);
    int low=0;
    int value=3;
    int mid=0;
    while (low<=height)
    {
        mid=(height+low)/2;
        if(arr[mid]==value)
            break;
        else if(arr[mid]>value)
        {
            height=mid-1;
        }
        else
            low=mid+1;
    }
    printf("%d",mid);
    return 0;
}

(low>high)当做了一条语句,所以提示缺少了分号;其实你的问题应该是else后面少写了if。
else(low>high)改为else if(low>high)

else 语句后面不能带条件。