设有若干个人员的数据,其中包含学生和教师。学生的数据中包括:号码、姓名、性别、职业、班级。教师的数据包括:号码、姓名、性别、职业、职务。可以看出,学生和教师所包含的数据是不同的。现在要求把这些数据放在同一个表格中储存,使用结构体中的共用体实现。
#include<stdio.h>
typedef struct{
int num;
char name[10];
char sex;
char job;
union {
int classnum;
char position[10];
}category;
}people;
int main()
{
int n;
scanf("%d",&n);
people ren[100];
for(int i=0;i<n;i++)
{
scanf("%d %s %c %c",&ren[i].num,ren[i].name,&ren[i].sex,&ren[i].job);
if(ren[i].job=='s')
scanf("%d",&ren[i].category.classnum);
if(ren[i].job=='t')
scanf("%s",ren[i].category.position);
}
for(int i=0;i<n;i++)
{
printf("%d %s %c %c ",ren[i].num,ren[i].name,ren[i].sex,ren[i].job);
if(ren[i].job=='s')
printf("%d\n",ren[i].category.classnum);
if(ren[i].job=='t')
printf("%s\n",ren[i].category.position);
}
return 0;
}