请教!C++求逻辑表达式的真值表!急用,谢谢!
表达式求值
输入逻辑表达式,输出真值表.对于逻辑表达式,有如下一些规定:
运算对象为逻辑变量,用字母A到Z表示(忽略大小写);
运算种类包括与,或,非三种,分别用*,+,!表示;
!为单目运算,优先级最高;
*和+为双目运算,*得优先级高于+;
*运算符可以省略,例如AB表示A*B;
3.计算表达式时;如果有括号(),则括号中的内容最先计算;
优先级高的运算先于优先级低的运算,如:A+B*C的计算顺序为(A+(B*C));
优先级相同的双目运算,计算顺序从左到右,如:A*B*C的计算顺序为((A*B)*C);
优先级相同的单目运算,计算顺序为从右到左,如!!A的计算顺序为(!(!A));
例:输入逻辑表达式!(a+bZ)*Z,输出的真值表为
A B Z !(a+bZ)*Z
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0