求大神帮忙看一下,我输入在输入sex和job之前,都会先跳过一次输入,然后显示输入错误。。。。
#include <stdio.h>
int main()
{
struct
{
int num;
char name[10];
char sex;
char job;
union
{
int banji;
char position[10];
}category;
}person[2];
int i;
for (i = 0; i < 2; i++)
{
printf("Please input num:");
scanf_s("%d", &person[i].num);
printf("Please input name:");
scanf_s("%s", person[i].name,10);
printf("Please select sex:");
scanf_s("%c", &person[i].sex);
while ((person[i].sex != 'f') && (person[i].sex != 'm'))
{
printf("Sex input error!\n");
printf("Please select sex again:");
scanf_s("%c", &person[i].sex);
}
printf("Please select job:");
scanf_s("%c", &person[i].job);
while ((person[i].job != 's') && (person[i].job != 't'))
{
printf("Job input error!\n");
printf("Please select job again:");
scanf_s("%c", &person[i].job);
}
if (person[i].job == 's')
{
printf("Please input class:");
scanf_s("%d", &person[i].category.banji);
}
else if (person[i].job == 't')
{
printf("Please input position:");
scanf_s("%s", person[i].category.position,10);
}
printf("\n\n");
}
printf("number name sex job class/position\n");
for (i = 0; i < 2; i++)
{
if (person[i].job == 's')
{
printf("%-8d%-8s%-8c%-8c%-8d\n", person[i].num, person[i].name, person[i].sex, person[i].job, person[i].category.banji);
}
if (person[i].job == 't')
{
printf("%-8d%-8s%-8c%-8c%-8s\n", person[i].num, person[i].name, person[i].sex, person[i].job, person[i].category.position);
}
}
}