从键盘输入两个命题变元p和q的真值,求它们的否定、合取、析取、蕴涵和等价五种运算的的真值。要求对输入内容进行分析,如果输入不合法(不是0、1)需要重新输入,程序有良好的输入输出界面。 1. 算法分析 否定 p :p为0时,值为1;其他为0 合取 p∧q :p,q都为1的时候为1;其他为0 析取 p∨q :p,q都为0的时候为0;其他为1 蕴含 p→q :p为1,q为0时为0;其他为1 等价 pq :p,q同真同假为1;其他为0 C语言实现
时间: 2024-02-26 16:56:37 浏览: 168
任意命题公式的真值计算
以下是C语言实现的代码:
```
#include <stdio.h>
int main() {
int p, q;
int not_p, and_p_q, or_p_q, imply_p_q, equiv_p_q;
// 读入p和q的值
do {
printf("请输入p和q的真值(用0或1表示):\n");
scanf("%d%d", &p, &q);
} while (p != 0 && p != 1 && q != 0 && q != 1);
// 计算五种运算的真值
not_p = !p;
and_p_q = p && q;
or_p_q = p || q;
imply_p_q = !p || q;
equiv_p_q = p == q;
// 输出结果
printf("p的否定为:%d\n", not_p);
printf("p与q的合取为:%d\n", and_p_q);
printf("p与q的析取为:%d\n", or_p_q);
printf("p蕴含q为:%d\n", imply_p_q);
printf("p与q的等价为:%d\n", equiv_p_q);
return 0;
}
```
程序会要求用户输入p和q的真值,然后进行五种运算的计算并输出结果。如果输入不合法,程序会要求重新输入。
阅读全文