一个奇怪的C程序,请高手帮助.解决思路
一个奇怪的C程序,请高手帮助..
我运行此程序,当想输出Sunday,Tuesday时,却输不出来,别的可以.不知为什么??我是用VC++6.0编译的..
#include<stdio.h>
main()
{
char letter;
printf("please input letter:\n");
while((letter=getchar())!='Y')
{
switch(letter)
{
case 'S':printf("input the seconde letter:");
if((letter=getchar())=='u')printf("Sunday\n");//打不出来;
else if((letter=getchar())=='a')printf("Saturday\n");
else printf("input error\n");
break;
case 'M':printf("Monday\n");break;
case 'T':printf("input the seconde letter:");
if((letter=getchar())=='u')printf("Tuesday\n");
else if((letter=getchar())=='h')printf("Thursday\n");
else printf("input error\n");
break;
case 'W':printf("Wednesday\n");break;
case 'F':printf("Friday\n");break;
default:printf("input error ,again:\n");
}
}
}
------解决方案--------------------
我运行此程序,当想输出Sunday,Tuesday时,却输不出来,别的可以.不知为什么??我是用VC++6.0编译的..
#include<stdio.h>
main()
{
char letter;
printf("please input letter:\n");
while((letter=getchar())!='Y')
{
switch(letter)
{
case 'S':printf("input the seconde letter:");
if((letter=getchar())=='u')printf("Sunday\n");//打不出来;
else if((letter=getchar())=='a')printf("Saturday\n");
else printf("input error\n");
break;
case 'M':printf("Monday\n");break;
case 'T':printf("input the seconde letter:");
if((letter=getchar())=='u')printf("Tuesday\n");
else if((letter=getchar())=='h')printf("Thursday\n");
else printf("input error\n");
break;
case 'W':printf("Wednesday\n");break;
case 'F':printf("Friday\n");break;
default:printf("input error ,again:\n");
}
}
}
------解决方案--------------------
- C/C++ code
main() { char letter; printf("please input letter:\n"); while((letter=getchar())!= 'Y ') { switch(letter) { case 'S': printf("input the seconde letter:"); //输入一个字符后,要把后面的回车过滤掉 getchar(); letter = getchar(); //你的逻辑有点问题, //每次去一个字符比较,不是去第一个字符比较 if(letter == 'u') printf("Sunday\n");//打不出来; else if(letter == 'a') printf("Saturday\n"); else printf("input error\n"); break; case 'M': printf("Monday\n"); break; case 'T': printf("input the seconde letter:"); getchar(); letter = getchar(); if(letter== 'u') printf("Tuesday\n"); else if(letter == 'h') printf("Thursday\n"); else printf("input error\n"); break; case 'W': printf("Wednesday\n"); break; case 'F': printf("Friday\n"); break; default: printf("input error again:\n"); } getchar(); printf("please input letter:\n"); } }