union

本文介绍了一个使用C语言实现的包含结构体(struct)和联合体(union)的示例程序。该程序定义了一个名为man的结构体,其中包含姓名、编号、性别、职业等字段,并通过联合体来区分学生和教师的不同属性。程序演示了如何输入和输出这些信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>


struct man
{
    char name[20];
    int num;
    char sex;
    char job;
    union differ
    {
        int cla;
char position[10];
    
    }zz;


};


int main()
{
    struct man persion[2];
    //union differ zz;
    printf("please enter: name num sex job class/position, twice\n");
    int i;
    for(i = 0; i < 2; i++)
    {
        scanf("%s %d %c %c", persion[i].name, &persion[i].num, &persion[i].sex, &persion[i].job);
        if(persion[i].job == 's')
{
   scanf("%d", &persion[i].zz.cla);
}
else if(persion[i].job == 't')
   {
       scanf("%s", &persion[i].zz.cla);
   }
   else
   {
       printf("error!");
   }
    }
    printf("\n");
    printf("name\tnum\tsex\tjob\tclass/position\n");


    for(i = 0; i < 2; i++)
    {
        if(persion[i].job == 's')
{
   printf("%5s %5d %5c %5c %5d\n",persion[i].name, persion[i].num, persion[i].sex, persion[i].job, persion[i].zz.cla);
        }
else
{
   printf("%5s %5d %5c %5c %5s\n",persion[i].name, persion[i].num, persion[i].sex, persion[i].job, persion[i].zz.position);
}
    }
    
    
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值