共用体和枚举类型

61 篇文章 0 订阅

描述

有n个人员的数据,其中有老师和学生。学生的数据中包括姓名,号码,性别,职业,班号;老师的数据中包括:姓名,号码,性别,职业,职务。可以看出,学生和老师的数据是不同的,学生有班号而没职务,老师有职务而没班号。现要求你根据输入信息,查询某一号码对应的姓名、性别以及班级(如果是老师,则是职务)。 要求用同一结构体来保存老师和同学的数据,并且在结构体当中使用共用体来存学生的学号(或老师的职务)。此外,人员性别应用枚举类型来实现。

输入

第一行输入n,表示有n个人员。接下来n行,每行表示一个人的数据分别是姓名,号码,性别(0表示女,1表示男),职业(字符s表示学生,t表示老师),班级或职务(如果职业是s,那么就输入班级,用一个整数表示;如果职业是t,就输入职务,用一个长度不超过10的字符串表示) 第n+1行是一个m,表示要查询的次数接下来是m个数,表示要查询的号码

输出

根据输入数据,输出号码对应的姓名、性别以及班级(如果是老师,则是职务)。

样例输入

2
Li 1011 1 s 501
wang 2085  0 t prof
1
1011

样例输出

Li 1 501

#include<iostream>
using namespace std;
struct ac{
    char name[20];
    int hm;
    int xb;
    char s;
    char zy;
    char zw[20];
    int bj;
}stu[100];
int main()
{
    int n,m,i,j,x;
    char s;
    while(cin>>n)
    {
        for(i=0;i<n;i++)
         {
              cin>>stu[i].name>>stu[i].hm>>stu[i].xb>>stu[i].s;
             if(stu[i].s=='s')
               cin>>stu[i].bj;
               if(stu[i].s=='t')
                 cin>>stu[i].zw;

         }
           cin>>m;
           for(i=0;i<m;i++)
           {
               cin>>x;
               for(j=0;j<n;j++)
                 if(stu[j].hm==x)
                 {
                     if(stu[j].s=='t')
                     cout<<stu[j].name<<" "<<stu[j].xb<<" "<<stu[j].zw<<endl;
                     else
                     if(stu[j].s=='s')
                     cout<<stu[j].name<<" "<<stu[j].xb<<" "<<stu[j].bj<<endl;
                    // break;
                 }
           }

    }
    return 0;
}


 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值