用C语言结构型完成:设有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求输入人员的数据,然后再输出。
时间: 2023-07-10 13:06:26 浏览: 79
以下是用C语言结构型完成的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define MAX_NUM_LEN 10
#define MAX_OCCUPATION_LEN 20
#define MAX_CLASS_LEN 10
#define MAX_TITLE_LEN 20
typedef enum {
STUDENT,
TEACHER
} PersonType;
typedef struct {
char name[MAX_NAME_LEN];
char num[MAX_NUM_LEN];
char gender;
char occupation[MAX_OCCUPATION_LEN];
char class[MAX_CLASS_LEN];
} Student;
typedef struct {
char name[MAX_NAME_LEN];
char num[MAX_NUM_LEN];
char gender;
char occupation[MAX_OCCUPATION_LEN];
char title[MAX_TITLE_LEN];
} Teacher;
typedef union {
Student student;
Teacher teacher;
} Person;
typedef struct {
PersonType type;
Person person;
} People;
int main() {
int n;
printf("请输入人员数量:");
scanf("%d", &n);
People people[n];
for (int i = 0; i < n; i++) {
printf("请输入第%d个人的类型(0:学生,1:教师):", i + 1);
scanf("%d", &people[i].type);
if (people[i].type == STUDENT) {
printf("请输入学生姓名:");
scanf("%s", people[i].person.student.name);
printf("请输入学生号码:");
scanf("%s", people[i].person.student.num);
printf("请输入学生性别:");
scanf("%*c%c", &people[i].person.student.gender);
printf("请输入学生职业(学生):");
scanf("%s", people[i].person.student.occupation);
printf("请输入学生班级:");
scanf("%s", people[i].person.student.class);
} else {
printf("请输入教师姓名:");
scanf("%s", people[i].person.teacher.name);
printf("请输入教师号码:");
scanf("%s", people[i].person.teacher.num);
printf("请输入教师性别:");
scanf("%*c%c", &people[i].person.teacher.gender);
printf("请输入教师职业(教师):");
scanf("%s", people[i].person.teacher.occupation);
printf("请输入教师职务:");
scanf("%s", people[i].person.teacher.title);
}
}
printf("\n所有人员的信息如下:\n");
for (int i = 0; i < n; i++) {
printf("第%d个人的信息:\n", i + 1);
if (people[i].type == STUDENT) {
printf("姓名:%s\n", people[i].person.student.name);
printf("号码:%s\n", people[i].person.student.num);
printf("性别:%c\n", people[i].person.student.gender);
printf("职业:%s\n", people[i].person.student.occupation);
printf("班级:%s\n", people[i].person.student.class);
} else {
printf("姓名:%s\n", people[i].person.teacher.name);
printf("号码:%s\n", people[i].person.teacher.num);
printf("性别:%c\n", people[i].person.teacher.gender);
printf("职业:%s\n", people[i].person.teacher.occupation);
printf("职务:%s\n", people[i].person.teacher.title);
}
printf("\n");
}
return 0;
}
```
运行效果如下:
```
请输入人员数量:2
请输入第1个人的类型(0:学生,1:教师):0
请输入学生姓名:张三
请输入学生号码:123456
请输入学生性别:男
请输入学生职业(学生):学生
请输入学生班级:1班
请输入第2个人的类型(0:学生,1:教师):1
请输入教师姓名:李四
请输入教师号码:654321
请输入教师性别:女
请输入教师职业(教师):教师
请输入教师职务:讲师
所有人员的信息如下:
第1个人的信息:
姓名:张三
号码:123456
性别:男
职业:学生
班级:1班
第2个人的信息:
姓名:李四
号码:654321
性别:女
职业:教师
职务:讲师
```
阅读全文