S1E12switch语句和分支嵌套 在VS2017中显示问题
#include <stdio.h>int main() {
char ch;
printf("请输入成绩:\n");
scanf_s("%c", &ch);
switch (ch)
{
case'A':printf("你的成绩在90分以上!\n"); break;
case'B':printf("你的成绩在80~90之间!\n"); break;
case'C':printf("你的成绩在70~80之间!\n"); break;
case'D':printf("你的成绩在60~70之间!\n"); break;
case'E':printf("你的成绩在60分以下!\n"); break;
default:printf("请输入有效成绩!\n"); break;
}
return 0;
搬运代码
代码如上、运行后分别输入A,B,C,D,E,F,显示均正常;但是在输入成绩为AB时显示结果为 你的成绩在90分以上!
这是为什么.. 运行到A时 第一个break不是已经结束了吗?
{:10_277:} 我也是新手,我觉得scanf(“%c”,&ch) %c只能读取一个字符,所以输入AB时只读A,输入BC时只读B, 首先,你看你说“但是在输入成绩为AB时显示结果为 你的成绩在90分以上!”对啊,就是因为运行到A时第一个break就已经结束了啊,所以它也没显示别的啊,这有啥不对的{:5_104:}
我还没运行代码,只是你是不是发贴的时候写错了? 我运行了,你说的运行结果对,但这有啥不对的,有疑问可以再组织下语言问,没看太明白 最强废铁h 发表于 2021-5-24 23:11
我也是新手,我觉得scanf(“%c”,&ch) %c只能读取一个字符,所以输入AB时只读A,输入BC时只读B,
我觉的你是对的{:10_257:} 王之叹息 发表于 2021-5-24 23:16
首先,你看你说“但是在输入成绩为AB时显示结果为 你的成绩在90分以上!”对啊,就是因为运行到A时第 ...
刚才去试了下,,你说的也靠谱{:10_277:} 王之叹息 发表于 2021-5-24 23:21
我运行了,你说的运行结果对,但这有啥不对的,有疑问可以再组织下语言问,没看太明白
感谢解惑。。我都懂了
页:
[1]