为啥执行后黑框没有结果?

![img](https://img-mid.csdnimg.cn/release/static

img


/image/mid/ask/949460610746130.jpg "#left")

为啥开始执行后没有运行结果?

你要输入字符才行啊,等你输入字符呢。
输入1回车就能看到结果了。
另外,getchar()读取的是字符,而你的switch语句中,case中用的是数字,只会执行default语句。需要把1改成'1',2改成'2'。
如果输入后黑窗口一闪而过,就在return 0前面加一句 system("pause"); 这个函数需要包含头文件 stdlib.h
输入如下图所示:

img

添加了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;
}
 

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632