||涉及知识点是lower_bound的应用↓
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; int main() { int x,n,q,kase=0;//x问题,n大理石数,q问题个数 int a[10000]; while(scanf("%d%d",&n,&q)==2&&n) { printf("CASE# %d: ",++kase); for(int i=0;i<n;i++)scanf("%d",&a[i]); //这里一定记得加&啊!!一开始就是因为这个RE了!!! sort(a,a+n);//sort大法好 //下面就是神奇的找大理石过程了 while(q--) //问题到底有没有问完呢 { scanf("%d",&x); int p=lower_bound(a,a+n,x)-a; if(a[p]==x)printf("%d found at %d ",x,p+1); //总是忘了换行嘤嘤嘤 else printf("%d not found ",x); } } return 0; }