关于if()的用法,要判断一个数是否处于某一个范围,为什么不能写成 if(90<=p<=100)?
我想让程序判断输入的成绩位于哪个区间范围。intmain(){intp;scanf("%d",&p);if(90<=p<=100)printf("成绩优秀");elsep...
我想让程序判断输入的成绩位于哪个区间范围。
int main()
{
int p;
scanf("%d",&p);
if(90<=p<=100)
printf("成绩优秀");
else
printf("不及格");
}
运行的结果,无论我输入什么数值,输入20,输入600,dos框运行结果都是输出“成绩优秀”。
我看了一晚,我把if的判断条件那里改成 if(90<=p&&p<=100),结果才终于行了。
但是我不懂为什么不能写成 if(90<=p<=100)?
还有,在这个程序里,我该如何限定所输入的p数值,不能超过100啊。因为我输入600,一样运行,结果却是输出“不及格” 展开
int main()
{
int p;
scanf("%d",&p);
if(90<=p<=100)
printf("成绩优秀");
else
printf("不及格");
}
运行的结果,无论我输入什么数值,输入20,输入600,dos框运行结果都是输出“成绩优秀”。
我看了一晚,我把if的判断条件那里改成 if(90<=p&&p<=100),结果才终于行了。
但是我不懂为什么不能写成 if(90<=p<=100)?
还有,在这个程序里,我该如何限定所输入的p数值,不能超过100啊。因为我输入600,一样运行,结果却是输出“不及格” 展开
4个回答
展开全部
<=是双目运算符,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("不及格");
}
要限制输入的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 这是个逻辑表达式 值为真或假 真为1 假为0
那么 肯定小于100
所以一直是真
你可以吧 if(90<=p<1) 测试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
90 <= p 这个表达式的值为0或1 该表达式的值再与 100比较,总是小于等于100的,所有恒为真!应该写成( 90 <= p ) && ( p <= 100 )另外,你需要注意你的编程风格,代码要写的美观,可以看看那些写的好的代码
追问
那在目前这个小程序里,我该如何限定所输入的数值不超过100呢
因为当我在dos框里输入600时,600不位于【90--100】这个区间,所以它就跳到else那里执行了,我不希望出现这种情况啊。
int p;
scanf("%d",&p);
if(90<=p&&p<=100)
printf("成绩优秀");
else
printf("不及格");
追答
再加个判断就ok了,
if ( p 100 )
printf ( " 输入错误,请输入0到100之间的成绩\n " );
else if ( 90 <= p && p <= 100 )
printf ( " 成绩优秀 \n " );
else
printf ( " 不及格 \n " );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询