小甲鱼课上讲的(修改版)欢迎小伙伴们来发表意见,畅所欲言
#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:}
这说明
if (isfree == "有空")
isfree 不等于 "有空'
所以才执行了 esle 1,问问题时请使用【问题求助】分类
2,改成这样:
scanf("%s",isfree);
下面那行 scanf 也一样
qiuyouzhi 发表于 2021-8-8 13:41
1,问问题时请使用【问题求助】分类
2,改成这样:
行不通呀,这样更改了还是会直接跳转到else语句那里,输出“女神没空” 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]