首页 > 其他分享 >【C语言】【共用体和结构体】有若干个人员的数据,其中有老师和学生,学生的数据中包括:姓名,号码,性别,职业,班级。教师的数据包括:姓名,号码,职业,职务,要求用一个表格来处理

【C语言】【共用体和结构体】有若干个人员的数据,其中有老师和学生,学生的数据中包括:姓名,号码,性别,职业,班级。教师的数据包括:姓名,号码,职业,职务,要求用一个表格来处理

时间:2022-12-04 20:02:44浏览次数:37  
标签:category name 号码 person job 姓名 printf 共用 数据

【结构体】

结构体使用struct声明,花括号内的子项称为结构体的成员,结构体名是用户自己指定的,又称为结构体标记。

【共用体】

共用体用union声明。用法和结构体相似。

区别:共用体成员共用一块内存区域,

结构体成员有自己所属的内存区域;

【C语言】【共用体和结构体】有若干个人员的数据,其中有老师和学生,学生的数据中包括:姓名,号码,性别,职业,班级。教师的数据包括:姓名,号码,职业,职务,要求用一个表格来处理_数据

#include <stdio.h>

struct             //声明无名结构体类型//  

{

int num;            //编号//  

char name[10];           //姓名//  

char sex;            //性别//  

char job;            //职业//  

union             //声明无名共用体类型//  

{

 int clase;          //班级//  

 char position[10];        //职务//  

 } category;          //成员category是共用体变量//  

}person[2];            //定义结构体数组person,有两个元素//  


int main()

{

int i;

for(i = 0;i<2;i++)

{

 printf("please enter the data of person:\n");

 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.clase);      //输入相关数据//  

 else if(person[i].job=='t')      //如果是老师//  

  scanf("%s",&person[i].category.position);   //输入相关数据//  

 else

  printf("INPUT ERROR!");      //如果不是显示输出错误//  

}

printf("\n");

printf("N0. name   sex job class/position\n");

for(i=0;i<2;i++)

{

 if(person[i].job=='s')

  printf("%-6d%-10s%-4c%-4c%-10d\n",person[i].num,person[i].name,person[i].sex,

  person[i].job,person[i].category.clase);

 else

  printf("%-6d%-10s%-4c%-4c%-10s\n",person[i].num,person[i].name,person[i].sex,

  person[i].job,person[i].category.position);

}

return 0;

}

标签:category,name,号码,person,job,姓名,printf,共用,数据
From: https://blog.51cto.com/u_15865347/5910034

相关文章