qq_57183072
2021-08-24 11:53
采纳率: 75%
浏览 60

c语言中的数组二分法

img
这里是哪里错了呢?

  • 收藏

3条回答 默认 最新

  • 信仰869 2021-08-24 16:00
    已采纳

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

    #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;
    }
    
    
    打赏 评论
  • CSDN专家-sinjack 2021-08-24 11:55

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

    打赏 评论
  • else 语句后面不能带条件。

    打赏 评论

相关推荐 更多相似问题