return 无法返回
- C/C++ code
int BiSearch(int a[],int low, int high,int val){ int mid=(low+high)/2; while(low<=high) { if(a[mid]<val)low=mid+1; else if(a[mid>val]) high=mid-1; else return mid;//无法返回,是怎么回事 } return -1;}
int a[]={89,890,8900,89000,6878800};
int pos=BiSearch(a,0,4,8900);
[解决办法]
else if(a[mid>val])
应该是
else if(a[mid]>val)
[解决办法]
把 mid=(low+high)/2;
放到while循环里面就可以了
[解决办法]
楼主的写错啦。
你的
- C/C++ code
if(a[mid>val])
[解决办法]