啊哈哈~~~ 大佬帮我看看哪里有问题
//P2249 【深基13.例1】查找
#include<iostream>
using namespace std;
int n,m,q,a[1000005];
int find(int x){ //二分查找函数
int l=1,r=n; //确定左右端点,左端点为第一个,右端点为最后一个
while(l<r){
int mid=l+(r-l)/2; //确定中点
if(a[mid]>=x) r=mid-1; //如果当前比答案大,那就要搜索前半部分,右端点为中点减一
else l=mid+1; //否则搜索后半部分,左端点为中点加一
}
if(a[l]==x)return l; //因为某种不知名原因,所以只能在外面判断是否找到,找到返回左端点(或右端点)
return -1; //没找到返回-1
}
int main(){
cin>>n>>m; //读入长度与访问次数
for(int i=1;i<=n;i++)
cin>>a[i]; //读入有序数列
for(int i=1;i<=m;i++){
cin>>q; //输入访问数字
cout<<find(q)<<" "; //通过二分函数来进行查找
}
return 0; //华丽收工
}