A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风中一场梦 中级黑马   /  2015-3-12 17:02  /  986 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*一个实例:使用结构体和共同体
设有若干个人员的数据,其中有学生和老师。
学生的数据包括:姓名,编号,性别,职业,年级。
老师的数据包括:姓名,编号,性别,职业,职务。
输入一人员信息并打印。
*/

#include<stdio.h>
#include"string.h"
void hz( int i , struct person*pp);
union qq
{
  char cla[10];//年级
  char job[10];//职务
};
struct person
{
  char name[10]; //姓名
  int sno;       //编号
  char sex[3];  //性别
  char zy[5];   //职业
  union qq jc ;  //年级或职务
};

int main()
{
   int i;
   char zzyy[5]="老师";
   struct person ren;
   for( i=1 ; i<=5 ; i++ )
   {
        if (strcmp(zzyy,ren.zy)==0 && i==5) { i=6; };
     hz(i,&ren);
   }
   printf ("\n姓名:%s \n编号:%d\n性别:%s \n职业:%s\n",ren.name,ren.sno,ren.sex,ren.zy);
   if (strcmp(zzyy,ren.zy)==0) //字符串比较函数strcmp
   {
       printf("职务:%s\n",&ren.jc.job);
   }
   else
   {
       printf("年级:%s\n",&ren.jc.cla);
   }
  return 0;
};

void hz( int i , struct person*pp)
{
  
  switch ( i )
  {
  case 1 :  printf("请输入姓名:"); scanf("%s",&pp->name); break;
  case 2 :  printf("请输入编号(请输入整数):"); scanf("%d",&pp->sno);  break;
  case 3 :  printf("请输入性别(男 or 女):"); scanf("%s",&pp->sex); break;
  case 4 :  printf("请输入职业(老师 or 学生):"); scanf("%s",&pp->zy);break;
  case 5 :  printf("请输入年级:"); scanf("%s",&pp->jc.cla); break;
  case 6 :  printf("请输入职务:"); scanf("%s",&pp->jc.job); break;
  };

}

1 个回复

倒序浏览
看不懂- -
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马