//共用体的运用
#include<stdio.h>
struct{
int num;
char name[10];
char sex;
char job;
union{
int banji;
char position[10];
}category;
}person[2];
int main(){
int 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'){
printf("是学生请输入班级:");
scanf("%d",&person[i].category.banji);
}else if(person[i].job=='t'){
printf("是老师请输入职务:");
scanf("%s",&person[i].category.position);
}else{
printf("输入有误");
}
}
printf("\n");
printf("NO. Name sex job class/position\n");
for(i=0;i<2;i++){
if(person[i].job=='s'){
printf("%d %s %c %c %d\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.banji);
}else{
printf("%d %s %c %c %s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.position);
}
}
}
共用体运用于分类的背景下,人可以属于不同的类别;
例如此背景下,若是学生那么就输入班级,若是老师那就输入职位,班级和职位属于同一列。因此班级和职位即为一对共用体。