C++ 逻辑表达式运算

逻辑表达式运算

问题描述
由大写英文字母和符号~、 *、+、()组成逻辑表达式,其中三个符号分别表示逻辑非、与、或运算,英文字母表示变量,变量有两种可能的取值,FALSE(0)或TRUE(1),~、*、+、括号()可改变表达式的运算次序,且可以嵌套。 编一个程序计算逻辑表达式的值。

【输入格式】

输入为若干行

第一行字符串s(1<=length<=200);
第二行为一个整数n(1<=n<=26);n表示上述逻辑表达式中逻辑变量的个数;
第3--2+n行为每个逻辑变量的值,其中变量名均为一个大写字母。

【输出格式】

输出一个逻辑值(TRUE 或 FALSE)

【输入输出样例】

输入文件名:stackc.in

(A+B)*(B+C)
3
A 1
B 0
C 0

输出文件名:stackc.out

FALSE

加上每一步的说明!!!!!
谢谢各位大仙了!!!!!

1,因此后面的语句没有执行;

参考:
短路求值
作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。假如expr1和expr2都是表达式,并且expr1的值为0,在下面这个逻辑表达式的求值过程中:

expr1 && expr2

expr2将不会进行求值,因为整个逻辑表达式的值已经可以确定为0。 类似地,如果expr1的值不是0,那么在下面的这个逻辑表达式的求值过程中:

expr1 || expr2

expr2将不会进行求值,因为整个逻辑表达式的值已经确定为1。
下面是一个简单的可能会出现短路求值的例子。假如我们需要处理的字符数量不超过5个。

int cnt =0;
while (++cnt<=5&&(c=getchar())!=EOF)
{
...

当表达式++cnt<=5的值是假时,下一个字符就不会被读取。
温馨提示:内容为网友见解,仅供参考
无其他回答

C++求逻辑表达式的值
1、!是取非操作,0为假,非0为真,!真=0,!假=1,所以!0=1, !5=0 2、x=a是赋值操作,不是判断相等,即把a值赋值给x,所以x=a;3、先计算&&左边的式子,!(a+b)+c-1=!7+5-1=4=0+5-1=4,再计算&&右边的式子b+c\/2=4+5\/2=4+2=6,所以整个式子是4&&6=1 ...

c++运算符的逻辑
逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。符号 功能&& 逻辑与|| 逻辑或! 逻辑非当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真...

c++中!x代表什么?求解
回答:C++中有布尔类型bool,像int一样,可以定义一个变量.如:int n = 0;bool b = false; bool只有两个值:true 和false; 0等效于false;其他一切非0值都是true; 你这里用!x,其实就是把(!x)作为一个bool值。 如果x为0,(!x)就是非0,是true; 如果x不为0,(!x)就是0,是false. C++中的w...

c++中or是怎么判断
C++中的逻辑运算符用于实现复杂的条件判断。其中,“||”表示逻辑或运算。在进行逻辑或运算时,只要其中一个条件为真,整个表达式就为真。例如,if (x > 0 || y > 0),只要x大于0或者y大于0,条件就为真。在C++中,可以将任何非零值视为真,零值则被视为假。逻辑或运算符的另一个特点是短路...

C++ 逻辑表达式运算
1,因此后面的语句没有执行;参考:短路求值 作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。假如expr1和expr2都是表达式,并且expr1的值为0,在下面这个逻辑表达式的求值...

用逻辑表达式表示1<=x<30在c++ 咋表示
用逻辑表达式表示1<=x<30在c++ 咋表示 >>是右移运算符。 <<是左移运算符 x >>= 1 等同于 x = x\/2;这是位运算, >>左移运算,<< 右移运算 x >> n 等同于 x \/ (2^n)x << n 等同于 x * (2^n)

逻辑表达式和条件表达式
逻辑表达式的结果是一个逻辑值,在C++中,整型数据可以用于逻辑运算,其值为0表示“假”,非0表示“真”。逻辑运算包括逻辑非、逻辑与、逻辑或,其真值表分别如下所示:逻辑非:A为条件,值为0表示条件不成立,值为1表示条件成立。逻辑与:若参加运算的某个条件不成立,则结果为不成立;若参加运算的...

【C++新手教程】C++ 运算符
1. 算术运算符C++支持的算术运算符包括:加、减、乘、除等。例如,变量A(10)和B(20)的运算实例,将在test.cpp文件的代码中演示。2. 关系运算符关系运算符如等于、小于、大于等,用于比较值。同样,通过test.cpp中的代码,你可以看到这些运算符在变量A(10)和B(20)上的应用。3. 逻辑运算符逻辑...

c++逻辑表达式!a||b
是a先进行非运算,然后和b或运算 !的优先级高

怎样用C++实现逻辑表达式转换成真值表的程序
"<<((!(p&&((!p)||q)))||q)<<endl;} \/\/运行结果 p q (p∧(p->q))->q 0 0 1 0 1 1 1 0 1 1 1 1 其实你可以将表达式化简:┐(p∧((┐p)∨q))∨q <=> ┐((p∧┐p)∨(p∧q)))∨q <=> ┐(0∨(p∨q)))∨q <=> 1 ∨((┐(p∨q))∨q)<=> 1 ...

相似回答
大家正在搜