共用体的应用:定义一个共用体描述人员信息,包含姓名、性别、年龄、身份,编号(如果身份是student,编号为9位学号,如果身份是teacher,编号为4位工号),从键盘输入3个人员信息并输出。
时间: 2024-05-02 13:16:38 浏览: 94
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
// 定义共用体
union person_info {
char number[10];
int age;
char gender;
};
// 定义结构体
struct person {
char name[20];
char identity[10];
union person_info info;
};
int main() {
struct person people[3]; // 定义3个人员信息
// 输入人员信息
for (int i = 0; i < 3; i++) {
printf("请输入第%d个人员信息:\n", i + 1);
printf("姓名:");
scanf("%s", people[i].name);
printf("身份(student或teacher):");
scanf("%s", people[i].identity);
// 根据身份输入编号
if (strcmp(people[i].identity, "student") == 0) {
printf("学号:");
scanf("%s", people[i].info.number);
} else if (strcmp(people[i].identity, "teacher") == 0) {
printf("工号:");
scanf("%s", people[i].info.number);
}
printf("性别:");
scanf(" %c", &people[i].info.gender);
printf("年龄:");
scanf("%d", &people[i].info.age);
}
// 输出人员信息
for (int i = 0; i < 3; i++) {
printf("第%d个人员信息:\n", i + 1);
printf("姓名:%s\n", people[i].name);
printf("身份:%s\n", people[i].identity);
printf("编号:%s\n", people[i].info.number);
printf("性别:%c\n", people[i].info.gender);
printf("年龄:%d\n", people[i].info.age);
}
return 0;
}
```
示例输出:
```
请输入第1个人员信息:
姓名:张三
身份(student或teacher):student
学号:123456789
性别:M
年龄:20
请输入第2个人员信息:
姓名:李四
身份(student或teacher):student
学号:987654321
性别:F
年龄:19
请输入第3个人员信息:
姓名:王五
身份(student或teacher):teacher
工号:1001
性别:M
年龄:30
第1个人员信息:
姓名:张三
身份:student
编号:123456789
性别:M
年龄:20
第2个人员信息:
姓名:李四
身份:student
编号:987654321
性别:F
年龄:19
第3个人员信息:
姓名:王五
身份:teacher
编号:1001
性别:M
年龄:30
```
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)