只用了个getchar();就想接收所有的回车了吗?
对不礼貌的女生收钱......
在c语言中输入是以回车作为结束而您用getchar()接收字符,前面刚好有个回车这个回车就背getchar()接收了,接下来在您的判断语句中就回出现错误;因此您在输入下一个字符的前应该再用getchar()接受前面的回车(相当于把回车这个字符清除了)
我以前也犯这样的错,这也是我再这个论坛里晓的的,
改过后的:
#include <stdio.h>
void main()
{
char letter ;
printf("please input the first letter of someday:\n");
/*当所按字母为Y时才结束*/
while((letter=getchar())!='Y')
{
switch(letter)
{
case 'S' :
getchar(); //清除回车,后面还有这种情况
printf("please input 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 ;
case 'F' :
getchar();
printf("friday\n");
break ;
case 'M' :
getchar();
printf("monday\n");
break ;
case 'T' :
getchar();
printf("please input second letter:\n");
if((letter=getchar())=='u')
{
printf("tuesday\n");
getchar();
}
else if((letter=getchar())=='h')
printf("thursday\n");
else printf("data error\n");
break ;
case 'W' :
getchar();
printf("wednesday\n");
break ;
default :
printf("data error\n");
}
}
}