kjj2931 发表于 2021-8-8 12:10:23

小甲鱼课上讲的(修改版)欢迎小伙伴们来发表意见,畅所欲言

#include <stdio.h>

int main()
{
        char israin,isfree;
       
        printf("是否有空?\n");
        scanf("%s",&isfree);
       
       
       
        printf("是否下雨?\n");
        scanf("%s",&israin);


        if (isfree == "有空")
        {        if(israin == "下雨")
                {
                        printf("记得带伞哦!\n");
                }
                else
                {
                        printf("开干!");
                }
               
        }
        else
        {
                printf("女神没空!");
       
        }
        return 0;
}

输出的结果是
是否有空?
有空
是否下雨?
下雨
女神没空!

为什么会在最后输出女神没空呢?{:5_96:}我感觉是char用法的问题,小伙伴们说说看,问题出在哪了。 {:5_92:}

Max472 发表于 2021-8-8 12:56:58

这说明
if (isfree == "有空")
isfree 不等于 "有空'
所以才执行了 esle

qiuyouzhi 发表于 2021-8-8 13:41:13

1,问问题时请使用【问题求助】分类
2,改成这样:
scanf("%s",isfree);
下面那行 scanf 也一样

kjj2931 发表于 2021-8-8 20:52:04

qiuyouzhi 发表于 2021-8-8 13:41
1,问问题时请使用【问题求助】分类
2,改成这样:



行不通呀,这样更改了还是会直接跳转到else语句那里,输出“女神没空”

qiuyouzhi 发表于 2021-8-9 09:54:06

kjj2931 发表于 2021-8-8 20:52
行不通呀,这样更改了还是会直接跳转到else语句那里,输出“女神没空”


#include <stdio.h>
# include <string.h>

int main()
{
    char israin,isfree;
   
    printf("是否有空?\n");
    scanf("%s", isfree);
   
    printf("是否下雨?\n");
    scanf("%s", israin);
   
    printf("%s\n", isfree);
   
    if (!strcmp(isfree, "有空"))
    {      
                if(!strcmp(israin, "下雨"))
      {
            printf("记得带伞哦!\n");
      }
      else
      {
              printf("开干!");
      }
         
    }
    else
    {
            printf("女神没空!");
    }
    return 0;
}
页: [1]
查看完整版本: 小甲鱼课上讲的(修改版)欢迎小伙伴们来发表意见,畅所欲言