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 }