又出问题了 循环出问题了
main(){
struct
{
char cat;
union
{
char pos[10];
int num;
}a;
}a[3];
int n;
for(n=0;n<3;n++)
{
scanf("%c",&a[n].cat);/*注意这里*/
switch(a[n].cat)
{
case 's':scanf("%d",&a[n].a.num);break;
case 't':scanf("%s",a[n].a.pos);break;
default :printf("error\n");
}
}
for(n=0;n<3;n++)
switch(a[n].cat)
{
case 's':printf("%c\t%d\n",a[n].cat,a[n].a.num);break;
case 't':printf("%c\t%s\n",a[n].cat,a[n].a.pos);
}
}
我用单步跟踪发现第一次输入a[0]是正常的 但第二次执行到那里时没有让我输入东西 直接进入switch然后输出error 不知道怎么回事