请问哪出错了?????
为什么输出全是-1
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
int m,n,p,a[1000001];
int find(int a[],int k,int l,int r){
int mid=(r+l)/2;
if(l=r){
if(a[l]==k) return l;
else return -1;
}
if(a[mid]<=k) find(a,k,mid+1,r);
else if(a[mid]>=k) find(a,k,l,mid+1);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=m;i++){
cin>>p;
cout<<find(a,p,1,n)<<" ";
}
return 0;
}