c语言,不知道哪里错了

利用二分查找搜寻所有待查找数据
利用二分法在一个有N(N≤20)个元素的有序数列中查找指定值y。找到y后,先输出查找次数,再输出其在数组中对应的下标。若数列中存在多个y,将所有y的位置按下标序号顺序输出;
否则输出“not found”.

输入格式:
输入在第1行中给出1个不大于20的数N。在第2行给出N个数(升序),以空格分隔。最后在第3行给出待查找数据y。

输出格式:
若数列中存在y:先输出查询次数,在其后每行以格式“位置:k”,输出一个位置值。
若数列中没有y:输出“not found”。

int main()
{
    int a[100],i,j,n,x,m,count=0;
    scanf("%d",&n);
    for(i=0;i"%d",&a[i]);
    scanf("%d",&x);
    for(i=1,j=n;i<=j;){
        m=(i+j)/2;
        count+=1;
        if(x>a[m]) i=m+1;
        if(xj=m-1;
        if(x==a[m]) break;
    }
    if(i>j) printf("not found");
    if(i<=j){
        printf("查找次数%d\n",count);
        for(i=1;i<=n;i++)
            if(x==a[i]) printf("位置:%d\n",i);
    }
}

上下发重 你看一下格式