请问在C语言中if(a<b<c)这样用可以不?但出现以下编译警告,对于它的结果有什么影响没?

#include <stdio.h>
main ()
{float a;
scanf ("%f",&a);
if (60<a<69)
printf ("The grade is C.\n");
if (70<a<79)
printf ("The grade is B.\n");
if (80<a<89)
printf ("The grade is A.\n");
return 0;
}

E:\c++\c\f.cpp(6) : warning C4804: '<' : unsafe use of type 'bool' in operation

第1个回答  2012-08-02
a<b<c相当于(a<b)<c,由于a<b返回的是一个bool值,不是true,就是false,在c++中,false和true一般是0或者1,这样只要c>1,那么这个式子就恒为真。所以,60<a<69一直是返回真本回答被提问者采纳
第2个回答  2012-08-02
不行,用a<b && b<c
第3个回答  2012-08-02
a<b<c没这么用的,得写成a<b && b<c
第4个回答  2012-08-02
在C语言中切勿与数学中的符号混淆,否则必出错,符号不能连写,一定要a<b&&b<c

C语言编程,if(a>b>c)可以这么写吗?我们老师好像有说不能连着的_百度知...
说这样的写法是错误的,是因为不能表达数学中的a>b>c的效果。但是这样的写法是符合C语言的语法的。它的作用是先判断a>b的结果,如果成立,那么a>b为1, 否则为0.然后再用这个结果,0或者1去和c判断。所以这个题目是没错的,可以得出结果。先判断a>b 为真,结果为1 再判断1>c c为3,结果为...

C 中的If语句条件部分能否用=号,如果可以那是代表什么呢?新手求解没...
在C语言中,若要使用等号(=)作为条件判断的一部分,其形式为 if(a = b c)。此表达式首先会计算括号内的表达式(b c),得到其结果并将其赋值给变量a。然后,C语言会判断a的值是否非零。如果a的值非零,即a不等于零,则条件为真,if语句的执行路径将被选取。相反,如果a的值等于零,即a等...

C语言中if(a>b>c)是什么意思???
C语言中if(a>b>c)表示if((a>b)>c) 先求出a>b的结果,然后这个结果再和c比较,由于a>b的结果不是0就是1,最终就是0或者1与c比较。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要...

c语言中可以使用: if(a,b,c<0)这样的判断语句吗?
可以,不过判定值只取决于c的值,与a,b没有关系,如果你要表达a或b或c小于0,则需要 if(a<0||b<0||c<0)这样表达

在c语言中,if(a > b > c) temp=a 语句是否正确
你写的这句话是可以执行的 但是已经不是你的意思 他先执行a>b 判断 如果成立,那么(a>b)==1,反之为0,然后在做后面的比较,如果1>c或0>c成立,在执行后面的赋值,否则就不执行 明白程序运行过程就好了 供参考

int a=3,b=4,c=4; if(a<b<c) printf("a<b<c"); else printf("no...
C语言中用连续不等式与数学上是不同的。if(a<b<c) 先判断a<b,a=3,b=4,a<b为真,值为1 再判断1<c,c=4,1<c为真,执行printf("a<b<c");输出a<b<c 可以看到,在与c比较时,已经不是b与c比较,而是1与c比较。这一点和数学上是不同的。如果想和数学上的计算方式一致,需要...

c语言中while(a<b<c)什么意思,
这种问题是一个很无聊的问题,在实际编程中不可能会碰到,而且作为规范的程序,也不允许这样的表达式出现。while (a < b < c)等价于while ((a < b) < c), (a < b)的计算结果将会得到bool值,即true(1)或false(0);然后是bool值和c进行比较,虽然还会得到一个bool值,但这样的比较已经没...

c语言 if(a<>b+c),这也可以做判断?代表什么意思?
意思就是:a不等于b+c

c语言if(a> b> c)的意思是什么?
最好不要这样写,可能与你预想的结果不现,>用于数值的比较大小,前面的a>b的结果只会是0和1(分别逻辑假和真),再与c比较大小,你是要这样吗?

C语言中,if(a<>b+c)是什么意思
a不等于b,在sql中是这样的

相似回答