BUG
#include<stdio.h>int main()
{
char isFree,isRain;
printf("是否有空?(Y/N)");
scanf("%c",&isFree);
getchar();
printf("是否下雨?(Y/N)");
scanf("%c",&isRain);
if(isFree=='Y')
{
if(isRain=='Y')
{
printf("记得带伞哦!\n");
}
}
else
{
printf("女神没空!\n");
}
return 0;
}
为什么前面的是否有空那里输入'N"了,后面我按回车后,它还会跳转到是否下雨那里啊?而不是跳转到没空那里?求大佬们解惑 我这里正常呀 你的意思是这样?
#include<stdio.h>
int main()
{
char isFree,isRain;
printf("是否有空?(Y/N)");
scanf("%c",&isFree);
getchar();
if(isFree=='Y')
{
printf("是否下雨?(Y/N)");
scanf("%c",&isRain);
if(isRain=='Y')
{
printf("记得带伞哦!\n");
}
}
else
{
printf("女神没空!\n");
}
return 0;
}
我这里正常呀 https://static01.imgkr.com/temp/eebeed4fdc7f45d3b9023604ab55596f.jpg 大马强 发表于 2021-8-25 14:37
没空的话,还在乎下不下雨么?^_^ 大马强 发表于 2021-8-25 14:35
我这里正常呀
我这里的输入‘N’,它还会跳转到是否下雨那里
是否有空?(Y/N)N
是否下雨?(Y/N)
女神没空! 人造人 发表于 2021-8-25 14:36
你的意思是这样?
这样子写是正常的,但是我是按照小甲鱼那样写的为啥会出现那样的BUG啊? 你的意思是说在
是否有空? 输入 N
然后就跳到没空,不用去执行 是否下雨 这个语句?
那得要这样才行啊
#include<stdio.h>
int main()
{
char isFree,isRain;
printf("是否有空?(Y/N)");
scanf("%c",&isFree);
getchar();
if(isFree=='Y')
{
printf("是否下雨?(Y/N)");
scanf("%c",&isRain);
if(isRain=='Y')
{
printf("记得带伞哦!\n");
}
}
else
{
printf("女神没空!\n");
}
return 0;
} 你这写法不对,当然不能得到你想要的结果
喜欢陈大傻 发表于 2021-8-25 15:06
这样子写是正常的,但是我是按照小甲鱼那样写的为啥会出现那样的BUG啊?
程序从上到下执行
你把这个
printf("是否下雨?(Y/N)");
scanf("%c",&isRain);
写在这个的外面,当然就会执行到了
if(isFree=='Y') 人造人 发表于 2021-8-25 15:31
程序从上到下执行
你把这个
printf("是否下雨?(Y/N)");
小甲鱼写的,哈哈哈,他应该是没考虑到这个 喜欢陈大傻 发表于 2021-8-25 17:24
小甲鱼写的,哈哈哈,他应该是没考虑到这个
这不是bug,这是特性!
^_^
页:
[1]