信息存储,共用体的应用

 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 }

 

posted on 2018-09-19 10:29  王朝马汉  阅读(254)  评论(0编辑  收藏  举报

导航