程序 7 三个数的惊奇
a,b,c是按照降序排列的吗?下面的程序与你的想法一致吗?
1 /********************************************
2 *test to see if three variables are in order*
3 ********************************************/
4 #include<isostream>
5
6 int main()
7 {
8 int a,b,c; //three simple variables
9
10 a=7;
11 b=5;
12 c=3;
13
14 //test to see if they are in order
15 if(a>b>c)
16 std::cout<<“a,b,c are in order\n”;
17 else
18 std::cout<<“a,b,c are mixed up\n”
19 return(0);
20 }
答案:不可以连用三个比较运算符,例如a>b>c,计算机为什么要比较1>c?问题在于比较运算符的结果是1或者0,因此表达式
if(a>b>c)
实际上成为:
if((a>b>)c)
由于a比b大,所以(a>b)的结果是1,于是就有if(1>c)
这个结果是false,因此执行else子句