#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,f,s[2000],g[2000],n,m;
int mid(int m)
{
int c,d=0,f,g,a,b;
a=n;
b=1;
while(a>b)
{
c=b+(a-b)/2;
if(s[c]>=m)
{
a=c;
}
else
{
b=c+1;
}
}
if(s[a]==m)
{
return a;
}
else
{
return -1;
}
}
int main()
{
scanf("%d%d",&n,&m);
for(a=1;a<=n;a++)
{
scanf("%d",s+a);
}
for(a=1;a<=m;a++)
{
scanf("%d",g+a);
}
for(b=1;b<=m;b++)
{
a=mid(g[b]);
printf("%d ",a);
}
return 0;
}
提交之后全都是RE,感觉思路没问题呢?然后翻译是说
运行时错误 接收信号11:内存引用无效的分段故障