先排序 后查找~ 之前自己写的查找 提交了 7次 错了7次!~ (int *)bsearch(&key, array, NUM, sizeof(), compare); #include <iostream> using namespace std; int a[100005]; int cmp(const void* a,const void* b) { return *(int *)a-*(int *)b; } int main() { int T,t,n,m,i,sum; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); qsort(a,n,sizeof(a[0]),cmp); sum=0; for(i=a[0];i<=a[n-1];i++) if(bsearch(&i,a,n,sizeof(a[0]),cmp)!=NULL && bsearch(&(t=(m-i)),a,n,sizeof(a[0]),cmp)!=NULL) sum++; printf("%d/n",sum); } return 0; }