大家帮着看看,按照书上的代码打的,到底哪里有问题,....
设有若干个人员的数据,其中有学生和教师.学生的数据包括:姓名,号码,性别,职业,班级.教师的数据包括:姓名,号码,性别,职业,职务.如果职业是学生,第五项为该生所在班级,如果职业是教师,则第五项为该教师的职务.书上用结构体内嵌共用体来实现的,我编译的时候总是出错..代码如下:struct
{
int num;
char name[10];
char sex;
char job;
union
{int class;
char position[10];
}category;
}person[2];
main()
{
int n,i;
for(i=0;i<2;i++)
{
scanf("%d,%s,%c,%c",&person[i].num,person[i].name,&person[i].sex,
&person[i].job);
if(person[i].job=='s')
scanf("%d",&person[i].category.class);
else if(person[i].job=='t')
scanf("%s",person[i].category.position);
else printf("input error!");
}
printf("\n");
printf("No. Name sex job class/position\n");
for(i=0;i<2;i++)
{
if(person[i].job=='s')
printf("%d\t%s\t%c %c\t%d\n",person[i].num,person[i].name,person[i].sex,
person[i].job,person[i].category.class);
else
printf("%d\t%s\t%c %c\t%s\n",person[i].num,person[i].name,person[i].sex,
person[i].job,person[i].category.position);
}
}
运行后,我输入:
101
Li
f
程序输出input error!
我接着输入s,程序再次输出 input error!并且跳了出来...
按ALT+F5查看,程序输出如下结果:
No. Name sex job class/position
101 Li
f
0
请问是哪里出问题了...(源文件我已上传,各位也可以在自己的机器上运行下)
NONAME.rar
(716 Bytes)