x = a < b || c++ 不论是a<b 还是a>b为什么X总是1 还有x=!a>b就不一样了 求高手解释本人新手

如题所述

这个你可以去看看符号优先级就明白了。|| 逻辑或运算符。 x的值你还要看c的值是什么。只要c为非0,则x值就是1. x=!a>b 根据优先级法则,先执行!a 然后再执行 (!a) > b追问

a>b是一个表达式,先进行判断是否为真
接着!是非操作
最后一个赋值语句
也就是说a>b的时候x=0
反之x=1 感觉和你说的不一样啊

追答

a>b是一个表达式,先进行判断是否为真, 然后再和c进行或运算。

最后一个赋值语句
也就是说a>b的时候x=0
如果a =2;b=-4;
!a = 0 0 > -4 你说结果会是true 还是false

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-07
x=a<b||c++执行顺序是先判断a<b||c++是否为真,只要C!=0,a<b||c++的值都是1。
而x=!a>b是判断!a>b是否为真,所以会有不同的结果。
第2个回答  2012-04-09
搞不清楚就加括号把自己的意思表达清楚

C++中x=a<b||c++是什么意思
这是逻辑语句。x=a<b||c++执行顺序是先判断a<b||c++是否为真,只要c!=0,a<b||c++的值都是1,或者a<b,a<b||c++的值也是1。

c++问题,求解
先算x;a<b成立为1,1或任何都是1,所以x=1;c++为4(c本身不变,只在表达式里面作为一个整体改变,后面y也一样),1||4的数结果为1。y:a>b不成立为0,0并任何为0,所以y=0;结果:a=1,b=2,c=3,x=1,y=0.

c++中 x = !a>b怎么算
按运算符的优先级,首先执行!a,对a取非,然后计算(!a)>b的值,返回是个bool型,就是0或1,然后计算赋值语句x=((!a)>b),将x赋值为比较的结果

c++条件表达式"x<=20?10:30",x =15,为什么表达式1不是20而是“x <=2...
问题表述不是很清楚,我想你说的“x=a<b?a:b”中表达式1是x=a<b而不是a<b吧。x<=20?10:30与x=a<b?a:b是两个不同的表达式。x<=20?10:30,只是一个条件表达式,没有赋值的过程。最终的结果是10,但是这个结果没有再赋给x。就是经过这个表达式之后,x的值还是15。x=a<b?a:b是一...

...A>B,A==B,A<B这三种情况分别应返回">","==","<"字符.
include <iostream> include <string> using namespace std;string f(int&a,int&b){ if(a>b)return ">";if(a<b)return "<";if(a==b)return "==";} int main(){ int a(0),b(0);cin>>a>>b;cout<<f(a,b);system("pause");return 0;} 时间复杂度不就三个判断吗?

Visual c++ 里面的代码x=a>b?a:b; 里面的 "?" 这个问号是什么意思...
问号是条件表达式?:的符号,x=a>b?a:b;就是,如果a>b,则取a的值赋给x,如果a不大于b,则取b的值赋给x(?:的优先级比=优先级高)

c++中a< b是什么意思?
c++中a>b?a:b是java里唯一的三元运算符,这的符号的意思是:如果?前面的式子为真,那么就返回冒号:左边的值;否则返回右边的值。你这个题目的意思就是:如果a大于b,那么c就等于a;如果a小于b,那么c就等于b。。也就是把a和b中较大的数赋值给c。

C++中a> b? a: b是什么意思?
在C++中,a > b ? a : b 是一个三目运算符(ternary operator),也被称为条件运算符(conditional operator)。这个运算符会首先比较 a 和 b 的值,然后根据比较结果来决定返回的值。具体的行为如下:如果 a > b 为真(即 a 大于 b),那么运算符将返回 a 的值。如果 a > b 为假(即...

C++中 (a>b)||c什么意思
|| 表示或的 意思,对于一个数值进行true和false判断,是非0为true,0为false;在这提醒楼主注意一个问题:如果(a>b)是正确的,则c就不做判断了,如果c有赋值的时候特别要注意 例子:(a>b) || c++ ,a=2,b=1,c=2 判断结束后c=2;如果a=1,b=2,c=2判断结束后c=3 ...

求c++高人!
#include"iostream.h"#include"math.h"voidmain(){doublea,b;cout<<"请输入两直角边长:"<<endl;cin>>a>>b;doublec=sprt(a*a+b*b)cout<<"斜边长="<<c<<endl;}求这个程序怎么不对了... #include "iostream.h" #include "math.h" void main(){ double a,b; cout<<"请输入两直角边长:"<...

相似回答