共用体的应用
有若干个人员的数据,其中有学生和教师,
学生的数据中包括:姓名、号码、性别、职业、班级,
教师的数据包括:姓名、号码、性别、职业、职务,
要求用同一个表格来处理
#include<stdio.h>
struct Person
{
char name[32];
int num;
char gender[32];
char zhiye;
union S{
char class[32];
char job[32];
}mes;
};
int main()
{
struct Person p[2];
int i;
for(i=0;i<2;i++){
printf("请输入你的职业,s为学生,t为老师\n");
scanf("%c",&(p[i].zhiye));
if(p[i].zhiye=='s'){
printf("请输入学生的班级\n");
scanf("%s",&(p[i].mes.class));
printf("请输入学生的姓名\n");
scanf("%s",&(p[i].name));
printf("请输入学生的号码\n");
scanf("%d",&(p[i].num));
printf("请输入学生的性别\n");
scanf("%s",&(p[i].gender));
}
else{
printf("请输入老师的职务\n");
scanf("%s",&(p[i].mes.job));
printf("请输入老师的姓名\n");
scanf("%s",&(p[i].name));
printf("请输入老师的号码\n");
scanf("%d",&(p[i].num));
printf("请输入老师的性别\n");
scanf("%s",&(p[i].gender));
}
getchar();
}
for(i=0;i<2;i++){
if(p[i].zhiye=='s'){
printf("%s,%d,%s,%c,%s\n",p[i].name,p[i].num,p[i].gender,p[i].zhiye,p[i].mes.class);
}
else{
printf("%s,%d,%s,%c,%s\n",p[i].name,p[i].num,p[i].gender,p[i].zhiye,p[i].mes.job);
}
}
return 0;
}