输入S后再输入u显示Sunday,但是输入a就提示输入错误,到底哪里出现了问题?谢谢!
没有财富值,见谅!谢谢各位
代码如下:
#include "stdio.h"
void main()
{
char in=getchar();
switch(in)
{
case 'F':printf("Friday.");break;
case 'M':printf("Monday.");break;
case 'S':printf("目前无法判断,请输入第二个字符!\n");
if(getchar()=='a')
printf("Saturday.");
else if (getchar()=='u')
printf("Sunday.");
else
printf("输入错误!");
break;
case 'T':printf("目前无法判断,请输入第二个字符!\n");
if(getchar()=='u')
printf("Tuesday.");
else if (getchar()=='h')
printf("Thursday.");
else
printf("输入错误!");
break;
case 'W':printf("Wednesday.");break;
default:printf("输入错误!");
}
}
switch case语句 里面嵌套if else语句出现错误,求指导
答案:3 悬赏:80 手机版
解决时间 2021-01-23 10:37
- 提问者网友:我是我
- 2021-01-22 10:13
最佳答案
- 五星知识达人网友:怙棘
- 2021-01-22 11:04
你的case内的if中的 getchar()应该只执行一次,用变量保存,如case‘S':改为:
在switch(in)前面加个 char ch;
case 'S':printf("目前无法判断,请输入第二个字符!\n");
ch = getchar();
if(ch=='a')
printf("Saturday.");
else if (ch=='u') //错误因为你这里再用getchar()得到的就是输入的第三个字符了。
printf("Sunday.");
else
printf("输入错误!");
break;
case'T'同理。。。
在switch(in)前面加个 char ch;
case 'S':printf("目前无法判断,请输入第二个字符!\n");
ch = getchar();
if(ch=='a')
printf("Saturday.");
else if (ch=='u') //错误因为你这里再用getchar()得到的就是输入的第三个字符了。
printf("Sunday.");
else
printf("输入错误!");
break;
case'T'同理。。。
全部回答
- 1楼网友:十鸦
- 2021-01-22 12:27
假定 int型 num为分数
if(num>=90) printf("优秀");
else if(num>=80) printf("良好");
else if(num>=70) printf("中等");
else if(num>=60) printf("合格");
else printf("不合格");
switch是一一比对相符,不适合用在判定大小的方面,非要这样用
switch(num/10)
{ case 10:
case 9: printf("优秀");break;
case 8: printf("良好");break;
case 7: printf("中等"); break;
case 6: printf("合格"); break;
default: printf("不合格");
}
- 2楼网友:三千妖杀
- 2021-01-22 12:10
输入1 0
第一次运行:
案例1:
开关(Y)
{0的情况下:一+ +;打破;
案例1:B + +;打破;
}
因为Y = 0,所以运行:0案例:一+ +;打破;
案例1:
开关(Y) BR /> {情况下0:+ +;打破;
案例1:B + +;打破;
}
没有中断,因此继续运行
案例2: + +,B + +;打破;
突破这里出来,所以最终的执行具有A + + A + + B + +;
要得到:
一= 1 ,B = 0
成这样:
案例1:开关(Y)
{0的情况下:一+ +;打破;
案例1:B + + ;打破;
}
突破;
案例2:A + +,B + +;打破;
案例3:A + +,B + +;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯