信息存储,共用体的应用
1 #include <stdio.h> 2 /* 3 题目: 4 设有若干个人员的数据,其中有学生和老师。 学生的数据包括: 姓名, 编号, 性别, 5 职业,年级。老师的数据包括:姓名,编号,性别,职业,职务。可以看出,学生和老 6 师所包含的数据是不同的。先要求把他们放在同一个表格中: 7 name num sex job grade position 8 li 1011 'f' 's' 1005 9 wang 2085 'm' 't' professor 10 11 12 思路:当job为 's' 代表学生。job为‘t’代表老师 可以声明一个共用体变量来存储 grade(年级)和position(职位) 13 */ 14 typedef struct student_teacher 15 { 16 char name[30]; 17 char sex; 18 char job; 19 int num; 20 union 21 { 22 int grade; 23 char postion[30]; 24 }gorp; 25 }Stu_Ter; 26 int main(void) 27 { 28 Stu_Ter sta; 29 printf("pls input name\n"); 30 scanf("%s",sta.name); 31 getchar(); 32 33 printf("pls input sex\n"); 34 scanf("%c",&sta.sex); 35 getchar(); 36 37 printf("pls input job\n"); 38 scanf("%c",&sta.job); 39 40 printf("pls input num\n"); 41 scanf("%d",&sta.num); 42 43 if('t' == sta.job) 44 { 45 printf("pls input postion\n"); 46 scanf("%s",sta.gorp.postion); 47 printf("name = %s,sex = %c,job = %c,num = %d,postion = %s\n", 48 sta.name,sta.sex,sta.job,sta.num,sta.gorp.postion); 49 50 } 51 else 52 { 53 printf("pls input grade\n"); 54 scanf("%d",&sta.gorp.grade); 55 56 printf("name = %s,sex = %c,job = %c,num = %d,grade = %d\n", 57 sta.name,sta.sex,sta.job,sta.num,sta.gorp.grade); 58 } 59 60 61 return 0; 62 }