共用体类型的数据特点, 这段代码哪儿有问题,为什么输出的结果不对???

#include
#include
#include
#include

struct
{
int num;
char name[20];
char sex;
char job;
union
{
int clas;
char position[20];
}category;
}per[2];

void main()
{
for(int i = 0;i < 2;i++)
{
scanf("%d %s %c %c",&per[i].num,per[i].name,&per[i].sex,&per[i].job);
if(per[i].job == 's')
{
scanf("%d",&per[i].category.clas);
}
else if(per[i].job == 't')
{
scanf("%s",per[i].category.position);
}

    else printf("ERROR");
}

for(int i = 0;i< 2;i++)
{
    if(per[i].job == 's')
    {
        printf("%d  %s  %c  %c  %d",per[i].num,per[i].name,per[i].sex,per[i].job,per[i].category.clas);
    }

    else 
    {
        printf("%d  %s  %c  %c  %s",per[i].num,per[i].name,per[i].sex,per[i].job,per[i].category.position);
    }
}





system("pause");

}

调试下,目测是你输入的格式和你的scanf不匹配

看了下你的代码,不知道楼主是不是觉得第2次输入到union中的数据会覆盖第一次的,重新描述下你的问题。
你的输入和输出结果是什么,你期望的结果又是什么。
图片说明