鱼C论坛

 找回密码
 立即注册
查看: 787|回复: 14

[已解决]新手求助,麻烦各位看一下,为什么第一句执行时打了N,但是还是不执行else后面的

[复制链接]
头像被屏蔽
发表于 2020-3-23 17:52:07 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-23 17:55:51 | 显示全部楼层
我这里没有问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 17:57:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 17:59:05 | 显示全部楼层
121786404 发表于 2020-3-23 17:57
就第一个if输入N,但是他没有输出else后面的句子,而是接受下一个if

不是
你的代码是先全部输入再判断的啊
要么你就输入一个判断一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 18:00:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 18:03:42 | 显示全部楼层
121786404 发表于 2020-3-23 18:00
这是小甲鱼课上switch这一节课的举例,我照着抄的,是不能这样子吗

不是
看你想要的效果咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 18:05:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 18:05:42 | 显示全部楼层
getchar的缘故,去掉后,会直接执行第二个printf然后就输出女神没空
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 18:07:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 18:08:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 18:10:40 | 显示全部楼层
121786404 发表于 2020-3-23 18:08
去掉getchar会把回车键算一个字符当成嵌套if的输入

我还是没听明白你的意思,你是想输入N后直接输出else中的语句,还是其他
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 18:11:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 18:14:03 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>

int main()
{
        char isRain,isFree;
        printf("是否有空?(Y/N)");
        scanf("%c",&isFree);
        getchar();
        
        if(isFree=='Y')
        {        printf("是否下雨?(Y/N)");
                 scanf("%c",&isRain);
                 getchar();

                if(isRain=='Y')
                {
                printf("记得带伞哦!^_^\n");
                }
               
        }
        else
        {
                printf("女神没空!T_T\n");
        }
        return 0;
}

代码是从上往下线性执行的,在两个scanf语句不运行完是不会向下执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 18:14:17 | 显示全部楼层

那就我感觉只能分开写了,分开判断执行,你也说了,写到一起会把回车当作一个字符,你还可以使用switch语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-3-23 18:16:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 16:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表