共用体条件不成立是为什么?求解(语言-c语言)

请问共用体有一个条件一直不成立不知道是什么原因,麻烦哪位帮忙看一下!

#include <stdio.h>
#include<string.h>

struct
{
    int num;
    char name[20];
    char sex;
    char job;
    union
    {
        int classno;
        char position[10];
    }type;
}person[2];
void main()
{
    int i;
    for(i=0;i<2;i++)
    {
        printf("input teach or student:");
        scanf("%c,%d,%s,%c,",&person[i].job,&person[i].num,person[i].name,&person[i].sex);
        if(person[i].job=='a')
        {
            printf("input classno:");
        scanf("%d",&person[i].type.classno);
        }
        else
        if(person[i].job=='t')
        {
            printf("input job:");
        scanf("%s",person[i].type.position);
        }
        else
        {
            printf("error!");
        }
    }
    printf("\n");
    for(i=0;i<2;i++)
    {
        if(person[i].job=='a')
        {
            printf("%d ",person[i].num);
            printf("%s ",person[i].name);
            printf("%c ",person[i].sex);
            printf("%c ",person[i].job);
            printf("%d\n",person[i].type.classno);
        }
        if(person[i].job=='t')
        {
           
            printf("%d ",person[i].num);
            printf("%s ",person[i].name);
            printf("%c ",person[i].sex);
            printf("%c ",person[i].job);
            printf("%s\n",person[i].type.position);
        }
    }
  }


img

img


img

img

可能是数制的问题,我把person[i].job的输入控制符改成字符串的s了,然后这步过了,虽然不知道为啥。。。蹲个高手帮忙解答一下

字符串和整型搞成联合体?
10个字节的整型,scanf可能懵了吧