关于筛选出数组的大写字母的问题

#include <stdio.h>

main()
{ int a[100];
int i;
printf("请输入一串字符,输入完毕请按回车");
for(i=0;i<100;i++)
{ scanf("%c",&a[i]);
if(a[i]=='\n')
break;
}

for(i=0;i<100;i++)
 { if(a[i]>='A'&&a[i]<='Z')
      printf("%c",a[i]);
     
     
 }

}
代码是哪里出了问题,不对劲,希望帮帮忙看一下

修改见注释,供参考:

#include <stdio.h>
int main()
{
    char  a[100];   // int a[100] 修改
    int i;
    printf("请输入一串字符,输入完毕请按回车");
    for (i = 0; i < 100; i++)
    {
        scanf("%c", &a[i]);
        if (a[i] == '\n')
            break;
    }
     for (i = 0; a[i] != '\n'; i++)  //for (i = 0; i < 100; i++)  修改
    {
        if (a[i] >= 'A' && a[i] <= 'Z')
            printf("%c", a[i]);
    }
    return 0;
}