输出结果带有奇怪符号

问题遇到的现象和发生背景

输出结果有小方格
输入为:2
ck 123 456^Z
cl 123 123^Z

问题相关代码,请勿粘贴截图
int main()
{
    student a[10];
    int n, i,sum=0;
    scanf_s("%d", &n);
    for (i = 0; i < n; i++)
    {
        a[i].NO = i + 1;
        a[i].m = 0;
        int sum;
        scanf_s("%s", &a[i].name,100);
        while ((scanf_s("%d", &sum)) == 1)
        {
            a[i].m = a[i].m + sum;
        }
    }
    for (i = 0; i < n; i++)
    {
        printf("%d  %s  %d\n", a[i].NO, a[i].name, a[i].m);
    }
    return 0;
}
运行结果及报错内容

1 ck 579
2 cl 246

我的解答思路和尝试过的方法

找不到问题原因

我想要达到的结果

消除

小方格在哪个位置啊,你截图看一下

        scanf_s("%s", &a[i].name,100); 去掉& 
改成
        scanf_s("%s", a[i].name,100);

你结构体的name字符数组长度是多少,是不是设置的太小了