int a[100],k,n,mid,lt,rt,ans=-1;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i]; //输入数组的每一项
lt=1; //左端初始值为1
rt=n; //右端初始值为n
while(lt<=rt){ //只要lt<=rt就执行
mid=(lt+rt)/2;
if(k<a[mid]) rt=mid-1; //如果小于中间值,右端值变为mid-1
else if(k>a[mid]) rt=mid+1; //如果大于,把左端值设为mid+1
else{ //直到相等时,退出循环
ans=mid;
break;
}
}
if(ans==-1) cout<<"NO"; //如果ans值没变,是-1,那么就没有找到
else cout<<ans;
如果有帮助就点个赞吧!