#include <stdio.h>
struct
{
int num;
char name[10];
char sex;
char job;
union
{
int banji;
char position[10];
}category;
}person[2];
void main()
{
int i;
for(i=0;i<2;i++)
{
printf("input the num:");
scanf("%d",&person[i].num);
printf("input the name:");
scanf("%s",person[i].name);
printf("input the sex(f/m):");
scanf("%c",&person[i].sex);
printf("input the job(s/t):");
scanf("%c",&person[i].job);
if(person[i].job=='t')
{
printf("input the position:");
scanf("%s",person[i].category.position);
}
else if(person[i].job=='s')
{
printf("input the banji:");
scanf("%d",&person[i].category.banji);
}
else
{
printf("data error!!");
}
printf("\n");
}
printf("\n");
printf("num name sex(f/m) job class/position\n");
for(i=0;i<2;i++)
{
if(person[i].job=='s')
{
printf("%-5d%-10s%-4c%-4c%-10d\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.banji);
}
else
{
printf("%-5d%-10s%-4c%-4c%-10s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.position);
}
}
}
性别读入的一个字符是你上一行中输入名字之后敲的回车, 在性别输入这句之前加个getchar()就好了