为什么我的循环中的scanf运行不了啊


#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n,i,high,list,data,c;
    int *a;
    printf("请输入数组长度");
    scanf_s("%d",&n);
    getchar();
    a=(int *)malloc(n * sizeof(int));
    for(i=0;i<n;i++)
    {
        
        fflush(stdin);
        scanf_s("%d",a[i]);
        getchar();
        
    }
    printf("请输入想要查找的数子");
    scanf_s("%d",&c);
    data=0;
    high=n-1;
    list=(data+high)/2;
    for(i=0;i<n/2;i++)
    {
        if(c=a[list])
        {
            printf("查找的数字%d的下标是%d",a[list],list);break;
    }
        else
        {
            if(c>a[list])
            {
                data=list+1;
                high=high-1;
                list=(data+data)/2;
            }
            else
            {
                data=data+1;
                high=list-1;
                list=(data+data)/2;
            }
    }
        if(data>high)
            break;
            printf("没有查到你想要的数字");
    }
    return 0;
}
            
            


img

scanf_s("%d",&a[i]);

给变量赋值要用地址符&
scanf_s("%d",&a[i]);

img