用c++写一段程序,测试p和q两个逻辑表达式是否逻辑相等 用真值表判断 输入的逻辑表达式为命题逻辑表达式 输入的逻辑表达式可以为复合命题,可包含四种联接词:与,或,非,条件
时间: 2023-06-05 15:07:01 浏览: 88
编码。
以下是测试p和q两个逻辑表达式是否逻辑相等的C语言程序:
#include <stdio.h>
#include <stdbool.h>
int main() {
int p, q;
printf("请输入p和q的真值表:\n");
printf("p q\n");
printf("-----\n");
for (int i = 0; i < 4; i++) {
scanf("%d %d", &p, &q);
bool result_p = (bool) p;
bool result_q = (bool) q;
// 输入的逻辑表达式可以为复合命题,可包含四种联接词:与,或,非,条件编码。
bool expr_p = (result_p && !result_q) || (!result_p && result_q);
bool expr_q = (!result_p || result_q) && (result_p || !result_q);
if (expr_p == expr_q) {
printf("p和q在第%d行结果相同:\n", i + 1);
printf("p: %d q: %d\n", result_p, result_q);
} else {
printf("p和q在第%d行结果不相同:\n", i + 1);
printf("p: %d q: %d\n", result_p, result_q);
}
}
return 0;
}
程序的输入是p和q的真值表,输出结果是在每一行输入的真值表中,p和q的逻辑表达式是否逻辑相等。程序中首先将输入的p和q转换为bool类型,然后分别计算p和q的逻辑表达式,最后比较两个逻辑表达式的值。在C语言中,bool类型的值true表示逻辑真,值false表示逻辑假。