ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

结构体中包含unoin

2021-02-23 12:36:03  阅读:158  来源: 互联网

标签:category 10 包含 strs char int job 体中 unoin


设有若干个人员的数据,其中包含学生和教师。学生的数据中包括:号码、姓名、性别、职业、班级。教师的数据包括:号码、姓名、性别、职业、职务。可以看出,学生和教师所包含的数据是不同的。现在要求把这些数据放在同一个表格中储存,使用结构体中的共用体实现。结构体定义如下:
struct {
int num;
char name[10];
char sex;
char job;
union {
int class;
char position[10];
}category;
};
在以上的结构体中,如果job项为s(学生),则第5项为class(班级);如果job项是t(教师),则第5项为position(职务)。
输入几个人员的数据,将其保存在以上包含共用体的结构体数组中,并输出。
上面的是算法笔记上的原话,他这个结构体定义的有点问题
首先需要在struct 后面写出名字
第二个是class属于关键字
修改后定义如下

struct Person{
    int num;
    char name[10];
    char sex;
    char job;
    union {
        int clas;
        char position[10];
    }category;
};

完整程序如下

#include<stdio.h>
#include<string.h>
struct Person{
    int num;
    char name[10];
    char sex;
    char job;
    union {
        int clas;
        char position[10];
    }category;
};
	int  main() {
		int n;
		scanf("%d",&n);
		Person strs[100];
		for(int i = 0;i< n;i++){
			scanf("%d %s %c %c",&strs[i].num,&strs[i].name,&strs[i].sex,&strs[i].job);
			if(strs[i].job =='s')
				scanf("%d",&strs[i].category.clas);
			else
				scanf("%s",&strs[i].category.position);
		}
		for(int i = 0;i< n;i++){
			if(strs[i].job =='s')
				printf("%d %s %c %c %d\n",strs[i].num,strs[i].name,strs[i].sex,strs[i].job,strs[i].category.clas);
			else
				printf("%d %s %c %c %s\n",strs[i].num,strs[i].name,strs[i].sex,strs[i].job,strs[i].category.position);
		}
		return 0;
	}

标签:category,10,包含,strs,char,int,job,体中,unoin
来源: https://www.cnblogs.com/weilongZhang/p/14435336.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有