附上题目: 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
例如: 程序运行时,提示你"please input first character:"
你输入'f'或者'F',则程序输出"Friday",
你输入s,则程序进一步提示你"Please input second character:"
此时还需要进一步输入u,程序才输出"Sunday"
如果你输入的字母和任何星期的英文单词首字母都不匹配,则程序需要提示"Illegal input!\n"
#include<stdio.h>
int main()
{
printf("please input first character:");
char a,b,c;
int m,n;
scanf("%c",&a);
switch(a)//先首先对首字母进行筛选,Tuesday和Thurday无法分辨,Saturday和Sunday无法分辨
{
case'M':printf("Monday\n");break;
case'T':{
m=1;
printf("Please enter the next character\n");
}break;
case'W':printf("Wednesday\n");break;
case'F':printf("Friday\n");break;
case'S':{
n=1;
printf("Please enter the next character\n");
}break;
default:printf("Character error!\n");break;
}
//再次对第二个字母进行选择
if(m==1)
{
scanf("%c",&b);
switch(b)
{
case'u':printf("Tuesday\n");break;
case'h':printf("Thursday\n");break;
}
}
if(n==1)
{
scanf("%c",&c);
switch(c)
{
case'a':printf("Saturday\n");break;
case'u':printf("Sunday\n");break;
}
}
return 0;
}
这个程序前面一部分对第一个字母进行比对没有问题,到第二部分的时候,比如我输了一个T进去调试的时候发现m=1这个语句也执行了,跳到了下面的if(m==1)部分,我输入u后就不对了,程序没有对u进行比对,而是跳到了if(n==1)的地方,然后在下面那个switch(c)内进行了比对,这个是怎么回事?
例如: 程序运行时,提示你"please input first character:"
你输入'f'或者'F',则程序输出"Friday",
你输入s,则程序进一步提示你"Please input second character:"
此时还需要进一步输入u,程序才输出"Sunday"
如果你输入的字母和任何星期的英文单词首字母都不匹配,则程序需要提示"Illegal input!\n"
#include<stdio.h>
int main()
{
printf("please input first character:");
char a,b,c;
int m,n;
scanf("%c",&a);
switch(a)//先首先对首字母进行筛选,Tuesday和Thurday无法分辨,Saturday和Sunday无法分辨
{
case'M':printf("Monday\n");break;
case'T':{
m=1;
printf("Please enter the next character\n");
}break;
case'W':printf("Wednesday\n");break;
case'F':printf("Friday\n");break;
case'S':{
n=1;
printf("Please enter the next character\n");
}break;
default:printf("Character error!\n");break;
}
//再次对第二个字母进行选择
if(m==1)
{
scanf("%c",&b);
switch(b)
{
case'u':printf("Tuesday\n");break;
case'h':printf("Thursday\n");break;
}
}
if(n==1)
{
scanf("%c",&c);
switch(c)
{
case'a':printf("Saturday\n");break;
case'u':printf("Sunday\n");break;
}
}
return 0;
}
这个程序前面一部分对第一个字母进行比对没有问题,到第二部分的时候,比如我输了一个T进去调试的时候发现m=1这个语句也执行了,跳到了下面的if(m==1)部分,我输入u后就不对了,程序没有对u进行比对,而是跳到了if(n==1)的地方,然后在下面那个switch(c)内进行了比对,这个是怎么回事?