关于if()的用法,要判断一个数是否处于某一个范围,为什么不能写成 if(90<=p<=100)?

2025-05-20 12:08:43
推荐回答(4个)
回答1:

<=是双目运算符,90<=p<=100等价于(90<=p)<=100,先计算括号里面表达式的值,90<=p(假设此时p的值为95),则这个表达式值为1,接着判断1<=100,表达式的值变为0了,因此要表达这个意思必须写成90<=p && p<=100
要限制输入的p数值,必须在输入的时候进行检查,例如可以用一个检查循环,若输入的数值超过100,那么提示输入错误,要求用户重新输入,否则退出循环执行后面的程序,程序可以改为:
int main()
{
int p;
while(1)
{
scanf("%d“,&p);
if(p>100 || p<0) printf("输入错误,请重新输入成绩:"); //若输入超过范围提示错误继续循环
else break; //退出循环
}
if (90<=p &&p<=100)
printf("成绩优秀");
else
printf("不及格");
}

回答2:

只有一种可能,那就是这个表达式换算成正常的表达式就是90<=p || p<=100,两个表达式取或的关系

if(P<100 && p>0)
{
if(90<=p<=100)
printf("成绩优秀");
else
printf("不及格");
}
}else
{
printf("输入数据格式不正确");
}

回答3:

90<=p<=100

它从左开始计算
90<=p 这是个逻辑表达式 值为真或假 真为1 假为0
那么 肯定小于100

所以一直是真

你可以吧 if(90<=p<1) 测试一下

回答4:

90 <= p 这个表达式的值为0或1 该表达式的值再与 100比较,总是小于等于100的,所有恒为真!应该写成( 90 <= p ) && ( p <= 100 )另外,你需要注意你的编程风格,代码要写的美观,可以看看那些写的好的代码