结构体与公用体问题
#include<stdio.h>struct
{
int num;
char name;
char sex;
char job;
union
{
int banji;
char position;
}category;
}person;
void main()
{
int i;
for(i=0;i<2;i++)
{
printf("Please enter the num:");
scanf("%d",&person.num);
fflush(stdin);
printf("Please enter the name:");
scanf("%s",person.name);
fflush(stdin);
printf("Please enter sex(f/m):");
scanf("%c",&person.sex);
fflush(stdin);
printf("Please enter the job(s/t):");
scanf("%c",&person.job);
fflush(stdin);
if(person.job=='s')
{
printf("Please enter the class:");
scanf("%d",person.category.banji);
}
else if(person.job=='t')
{
printf("Please enter the position:");
scanf("%s",&person.category.position);
}
else
{
printf("Error input!!");
}
}
printf("num \t name \t sex \t job \t class|position \n");
for(i=0;i<2;i++)
{
if(person.job=='s')
{
printf("%d \t %s \t %c \t %c \t %d \n",person.num,person.name,person.sex,person.job,person.category.banji);
}
else
{
printf("%d \t %s \t %c \t %c \t %s \n",person.num,person.name,person.sex,person.job,person.category.position);
}
}
}
为什么只能输入一组数据啊,输入完一组数据程序就错误!!
粗心大意,应该改成
scanf("%d",&person.category.banji);
scanf("%s",person.category.position);
页:
[1]