该代码有何问题?
请观察以下代码:#include <stdio.h>
int main()
{
printf("请输入:");
int a=scanf("%d",&a);
char b,c,d,e;
b="A";
c="B";
d="C";
e="D";
if(a >= 10)
{
printf("%c",b);
}
else if(7 < a <10)
{
printf("%c",c);
}
else if(4 < a <= 7)
{
printf("%c",d);
}
else if(0 <= a <= 4)
{
printf("%c",d);
}
return 0;
}
存在何问题 else if(7 < a <10)问题所在,含下面几个类似语句 本帖最后由 Hoiste 于 2021-6-21 10:11 编辑
7 < a <10这里,C里面的比较运算符不能这么连用,可能有些地方不会报错,但也不会有输出,要实现这种思路需要用到与运算(&&),正确的表达是:
7 < a && a < 10 0<=a<=4不能连用,要分开a>=0&&a<=4 小于小于号谁叫你这么用的{:10_266:}连我这个小菜鸡都看得出{:10_266:} Thank you{:10_254:} Gacy 发表于 2021-6-21 12:22
小于小于号谁叫你这么用的连我这个小菜鸡都看得出
菜鸡咋了,有何干系
{:10_243:} 不能连续比较
因为比较操作符的结果是个值(真或假
else if(7 < a <10)先执行前面 判断7 <a 是否为真
然而 1or0 永远小于 10 斯劳123 发表于 2021-6-21 13:34
菜鸡咋了,有何干系
{:10_256:}{:10_256:}{:10_256:} 7 < a <10c语言不支持这用的 你要用逻辑与符号(&&),else if 建议直接使用else
斯劳123 发表于 2021-6-21 13:34
菜鸡咋了,有何干系
{:10_254:}{:10_254:}呜呜呜 我找到问题所在
不单单只有这一点
还有一个问题
int a=scanf("%d",&a);要改为
int a;
scanf("%d",&a);
页:
[1]