你的case内的if中的 getchar()应该只执行一次,用变量保存,如case‘S':改为:
在switch(in)前面加个 char ch;
case 'S':printf("目前无法判断,请输入第二个字符!\n");
ch = getchar();
if(ch=='a')
printf("Saturday.");
else if (ch=='u') //错误因为你这里再用getchar()得到的就是输入的第三个字符了。
printf("Sunday.");
else
printf("输入错误!");
break;
case'T'同理。。。
输入1 0
第一次运行:
案例1:
开关(Y)
{0的情况下:一+ +;打破;
案例1:B + +;打破;
}
因为Y = 0,所以运行:0案例:一+ +;打破;
案例1:
开关(Y) BR /> {情况下0:+ +;打破;
案例1:B + +;打破;
}
没有中断,因此继续运行
案例2: + +,B + +;打破;
突破这里出来,所以最终的执行具有A + + A + + B + +;
要得到:
一= 1 ,B = 0
成这样:
案例1:开关(Y)
{0的情况下:一+ +;打破;
案例1:B + + ;打破;
}
突破;
案例2:A + +,B + +;打破;
案例3:A + +,B + +;
在case 'S':printf("目前无法判断,请输入第二个字符!\n");case 'T':printf("目前无法判断,请输入第二个字符!\n");后边加一句getchar();就行了