#include<iostream> #include<cstdio> using namespace std; const int n=4; int a[]={0,5,6,8,10}; int erfenEqual(int low,int high,int key) { int mid; while(low<=high) { mid=(low+high)/2; if (a[mid]==key) return mid; else if(a[mid]>key) high=mid-1; else low=mid+1; } return -1; } int erfenBig(int low,int high,int key)//找到第一个大于Key的元素的位置 { int mid; while(low<=high) { mid=(low+high)/2; if(a[mid]>key) high=mid-1; else low=mid+1; } return low; } int main() { int x=erfenEqual(1,4,8); if (x==-1) cout<<"找不到"; else cout<<"找到,位置为"<<x; x=erfenBig(1,4,8); if (x>n) cout<<"在数组中找不到比此数还大的数"; else cout<<"找到,位置为"<<x; return 0; }