无论输入什么字符串x = strcmp(S[i].name, a)中x一直为1

#include <stdio.h>
#include <string.h>
struct book
{
int id;
char name[20];
int num;
};
int main()
{
int i=0,x;
char a[10] ;     
struct book S[5] = { {001,"son",123}, {002,"father",789}, {003,"mother",741}, {004,"brother",369}, {005,"sister",456}};
scanf_s("%s", a);       //14行
for ( i = 0; i < 5; i++)
{
x = strcmp(S[i].name, a);   //17行
printf("%d,%s\n", x, S[i].name);
if (strcmp(S[i].name, a) == 0 )
printf("%d\n", S[i].num);
else if (strcmp(a, S[i].name) != 0)
printf("无!");
}
return 0;
}

第14行有6064错误 第17行有6054错误

想要输入书名(name)输出书的数量(num)

看看这样行不行

#include <stdio.h>
#include <string.h>
struct book
{
    int id;
    char name[20];
    int num;
};
int main()
{
    int i = 0, x,flag = 0;
    char a[10];
    struct book S[5] = {{001, "son", 123}, {002, "father", 789}, {003, "mother", 741}, {004, "brother", 369}, {005, "sister", 456}};
    scanf_s("%s", a); //14行
    for (i = 0; i < 5; i++)
    {
        // x = strcmp(S[i].name, a); //17行
        // printf("%d,%s\n", x, S[i].name);
        if (strcmp(S[i].name, a) == 0){
            flag = 1;
            printf("%d\n", S[i].num);
        }
    }
    if(flag == 0){
        printf("无!");
    }
    return 0;
}


还是不行 我发现我源代码里给a赋值,附不上

img