这里是哪里错了呢?
问题不少,详情私信
参考:
#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 语句后面不能带条件。