读取的是字符,而你的switch语句中,case中用的是数字,只会执行default语句。需要把1改成'1',2改成'2'。
如果输入后黑窗口一闪而过,就在return 0前面加一句 system("pause"); 这个函数需要包含头文件 stdlib.h
输入如下图所示:
添加了system("pause")的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char c;
c = getchar();
switch(c)
{
case '1': //这里是'1',不是1,前者是字符1,后者是数字1,getchar()读取的是字符
printf("OK\n");
break;
case '2':
printf("NOT\n");
break;
default:
printf("YES\n");
}
system("pause");
return 0;
}
getchar是要读取一个字符, 这是在等你输入字符,你要输入一个字符并回车
getchar读取的是一个字符, case 之后的1或2是数值,两者不相等
case 1: 应该改成 case '1':
case 2: 应该改成 case '2':
printf("NOT\n");之后要加上break
#include <stdio.h>
#include <stdlib.h>
int main()
{
char c;
c = getchar();
switch(c)
{
case '1': //1是数值,要改成字符'1'
printf("OK\n");
break;
case '2':
printf("NOT\n");
break; // 加上break
default:
printf("YES\n");
}
system("pause");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!