<=是双目运算符,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("不及格");
}
只有一种可能,那就是这个表达式换算成正常的表达式就是90<=p || p<=100,两个表达式取或的关系
if(P<100 && p>0)
{
if(90<=p<=100)
printf("成绩优秀");
else
printf("不及格");
}
}else
{
printf("输入数据格式不正确");
}
90<=p<=100
它从左开始计算
90<=p 这是个逻辑表达式 值为真或假 真为1 假为0
那么 肯定小于100
所以一直是真
你可以吧 if(90<=p<1) 测试一下
90 <= p 这个表达式的值为0或1 该表达式的值再与 100比较,总是小于等于100的,所有恒为真!应该写成( 90 <= p ) && ( p <= 100 )另外,你需要注意你的编程风格,代码要写的美观,可以看看那些写的好的代码