写C++时遇到了问题

答案错误,找了5个错,对50分

img

编译过不了,但是没有红行,也运行不了

#include<iostream>
using namespace std;
int b[1000];
int main(){
    int l=0,a,p,c;
    cin>>c;
    int r=c;
    for(int i=0;i<c;i++){
        cin>>b[1];
    }
    cin>>p;
    while(l<r){
        int m=(l+r)/2;
        if(b[m]==p){
            cout<<m;
            return 0;
        }else if(b[m]>p){
            r=m-1;
        }else{
            l=m+1;
        }
    }
    cout<<-1<<endl;
    return 0;
}

就是二分查找完成下面要求

img

谢谢

编译过不了,总有错误提示吧
第9行错误, cin>>b[1];应该是cin>>b[i];啊,你写成了1,输入值一直写入b[1],其它元素都没赋值,当然错误了