注意题干信息 班级和职务是不同的 其他都是相同的 不同的我采用共用体
#include <stdio.h>
//无名结构体
struct {
int num;
char name[20];
char sex;
char job;
union
{
int clas;
char position[10];
}category;//这是共用体变量
}person[2];//这是结构体变量 就两个元素
int main() {
//输入
int i;
for (i = 0; i < 2; i++) {
scanf_s("%d%s%c%c", &person[i].num, person[i].name, 6, &person[i].sex,7, &person[i].job,7);
if (person[i].job == 's') {
scanf_s("%d", &person[i].category.clas);
}
else if (person[i].job == 't') {
scanf_s("%s", &person[i].category.position,2);
}
else {
printf("erro\n" );
}
}
printf("\n");
//输出
for (i = 0; i < 2; i++) {
//是学生这样输出
if (person[i].job == 's') {
printf("%-6d %-10s %-4c %-4c %-10d\n", person[i].num, person[i].name,person[i].sex, person[i].job, person[i].category.clas);
}
//是教师这样输出
else {
printf("%-6d %-10s %-4c %-4c %-10s\n", person[i].num, person[i].name, person[i].sex,person[i].job, person[i].category.position);
}
}
return 0;
}