C语言,根据输入的字母判断是星期几

#include<stdio.h>voidmain(){printf("pleaseenterthefirstletterofsomeday:\n");charlette... #include <stdio.h>
void main()
{
printf("please enter the first letter of someday:\n");
char letter;
while((letter=getchar())!='y')
{switch(letter){
case 'S':
{printf("please enter the second letter:");
if((letter=getchar())=='a')
printf("It is Saturday!\n");
else if((letter=getchar())=='u')
printf("It is Sunday!\n");
else printf("error\n");
break;
}
case 'M':printf("It is Monday!\n");
break;
case 'T':{
printf("please enter the second letter:");
if((letter=getchar())=='h')
printf("It is Tuesday!\n");
else if((letter=getchar())=='u')
printf("It is Thursday!\n");
break;
}
case 'F':printf("It is Friday!\n");
break;
case 'W':printf("It is Wednesday!\n");
break;
}
}
}
现在遇到问题,比如说输入“S”,提示输入第二个字母,如果输入“u”,就输出Sunday,但如果输入“a”,就没有任何反应。
展开
 我来答
kosl90
推荐于2017-10-14 · TA获得超过440个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:231万
展开全部
你输入了S后的回车还在缓冲区中,后来被读取到letter中了,而不是你输入的字母,所以才会出错,你在之前再加一个getchar就行了。还有你的第二个else if中不需要再读取字母了,直接判断就行了。下面是整理后的代码。我建议你直接读取一段作为字符串来判断比较方便,这样比较麻烦。
#include <stdio.h>
void main()
{
printf("please enter the first letter of someday:\n");
char letter;

while ((letter = getchar()) != 'y') {
switch (letter) {
case 'S': {
printf("please enter the second letter:");
getchar();

if ((letter = getchar()) == 'a') {
printf("It is Saturday!\n");
} else if (letter == 'u') {
printf("It is Sunday!\n");
} else {
printf("error\n");
}

break;
}
case 'M':
printf("It is Monday!\n");
break;
case 'T': {
printf("please enter the second letter:");
getchar();

if ((letter = getchar()) == 'h') {
printf("It is Tuesday!\n");
} else if (letter == 'u') {
printf("It is Thursday!\n");
}

break;
}
case 'F':
printf("It is Friday!\n");
break;
case 'W':
printf("It is Wednesday!\n");
break;
}
}
}
oxing936
2011-08-16 · 贡献了超过255个回答
知道答主
回答量:255
采纳率:0%
帮助的人:134万
展开全部
我想实现一个简单的功能:就是输入星期几的第一个字母,就打印出数字几。 printf(
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手持锅盔奔小康
2011-08-16
知道答主
回答量:18
采纳率:0%
帮助的人:12.7万
展开全部
switch中加入默认的判断
default:
break;
这里你没加默认的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式