简单C语言问题求指教
#include <stdio.h>
void main()
{
char letter;
printf("plz input the first letter of someday\n");
while ((letter=getchar())!='Y')
{
switch (letter)
{
case 'S':{printf("plz input the second letter\n");
if
((letter=getchar())=='a') printf("Saturday\n");
else if((letter=getchar())=='u')printf("Sunday\n");
else printf("data error\n");
break;}
}
}
}
运行后假如我输入S,在输入a直接data error,输入S再输入u可以得到Sunday 展开
#include <stdio.h>
void main()
{
char letter;
printf("plz input the first letter of someday\n");
while ((letter = getchar()) != 'Y')
{
switch (letter)
{
case 'S': {printf("plz input the second letter\n");
if
((letter = getchar()) == 'a') {
printf("Saturday\n");
getchar();
}
else if ((letter = getchar()) == 'u')printf("Sunday\n");
else printf("data error\n");
break; }
}
}
}
原因是你没有清除缓冲区的S,第一次你输入S后接a能成功输出的原因是 你在进入switch前将之前的S给get了(这是个形象的说法,实际上是getchar语句清空了键盘的缓冲区)
望采纳 谢谢
大神啊,这样改了还是一样的输出。。。
我要达到的是Sa输出星期六,Su输出星期天,求指导
#include <stdio.h>
void main()
{
char letter;
printf("plz input the first letter of someday\n");
while ((letter = getchar()) != 'Y')
{
switch (letter)
{
case 'S': {printf("plz input the second letter\n");
getchar();
if((letter = getchar()) == 'a')
printf("Saturday\n");
else if (letter == 'u')printf("Sunday\n");
else printf("data error\n");
break; }
}
}
}
抱歉 改错了....还是一样的解释。抱歉
2016-07-03
2016-07-03
我想达到的目的是 输入S再输入a打印Saturday,怎么会报错。。