#include<stdio.h>
int search(int k,int amount[],int length);
int main()
{
int amount[]={1,2,5,8,9,56};
int k,r;
scanf("%d",&k);
r=search(k,amount,sizeof(amount)/sizeof(amount[0]));
if(r!=-1){
printf("%d在%d的位置上",k,r);
} else{
printf("不存在那个数");
}
return 0;
}
int search(int k,int amount[],int length)
{
int ret=-1
int left=0;
int right=length-1;
while(right>left)
{
int mid=(right+left)/2;
if(amount[mid]==k)
{
ret=mid;
break;
}else if(amount[mid]>k)
{
right=mid-1;
}else
{
left=mid+1;
}
}
return ret;
}
这是一个二分搜索的题目,他总是说我定义的search函数中的left没有在scope被declared,请问这是怎末回事。