C语言计算空格数,这哪错了,帮我瞅瞅啊

#include<stdio.h>
int main()
{
char a[100];
int i=0,b,count=0;

printf("请输入:");
scanf("%s",&a);

for(i=0;i<100;i++)
{
    scanf("%c",&a[i]);
    if((a[i]=getchar())=='\n')
    {
        b=i;
        break;
    } 
        
    else if(a[i]==' ')
    {
        count+=1;
    } 
    else
    continue;
}
printf("%d\n",b);
for(i=0;i<=b;i++)
{
    printf("%c",a[i]);
}        
printf("%d\n",count);

return 0;

}

把scanf("%c",&a[i]);这一句删掉

scanf("%s", &a)