⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例11.12.txt

📁 C语言课件,清华大学出版的书的配套的.很好用,尽管下载.
💻 TXT
字号:
例11.12

设有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、图11.25号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。可以看出,学生和教师所包含的数据是不同的。现要求把它们放在同一表格中,见图11.25。如果“job”项为“s”(学生),则第5项为class(班)。即Li是501班的。如果“job”项是“t”(教师),则第5项为position(职务)。Wang是prof(教授)。显然对第5项可以用共用体来处理(将calss和position放在同一段内存中)。

要求输入人员的数据,然后再输出。可以写出下面的算法(见图11.26)。按此写出程序。为简化起见。只设两个人(一个学生、一个教师)。   
struct
  {int num;
        char name[10];
        char sex;
        char job;
        union
          {int class;
            char position[10];
            }category;
       }person[2];
    main()
    {int n,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') scanf("%d", &person[i].category.class);      
else if (person[i].job=='t') scanf("%s",person[i].category.position);
  else printf("input error!");
           }
      printf("\n");
     printf("No. Namesex job class/position\n");
    for(i=0;i<2;i++)
         {if(person[i].job=='s')
printf("%\|6d   %\|10s %\|3c %\|3c %\|6d\n", person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.class);
       else 
printf("%\|6d   %\|10s %\|3c %\|3c %\|6s\n", person[i].num, person[i].name,person[i].sex,person[i].job,person[i].category.position);  
               } 
     }
运行情况如下:
101 Li f s 501

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -