实验内容:求任意一个命题联结词的真值表。要求从键盘p、q输入真值,求其析取,合取,蕴含,等价的真值。
#include "stdafx.h"
#include<stdio.h>
//选择4中运算中的一种进行操作,此为一个方法在主函数中调用
int LiSan(int p, int q) {
int i,t;
do {
printf_s("你输入您要进行的操作\n");
printf_s("1):合取\n2):析取\n3):蕴含\n4):等价\n");
scanf_s("%d", &i);
switch (i) {
//合取运算
case 1: {
if (p&&q)
printf_s("合取运算:p/\\q=1\n");
else
printf_s("合取运算:p/\\q=0\n");
break;
}
//析取运算
case 2: {
if (p || q)
printf_s("析取运算:p\\/q=1\n");
else
printf_s("析取运算:p\\/q=0\n");
break;
}
//蕴含运算
case 3: {
if (p && !q)
printf_s("蕴含:p->q=0\n");
else
printf_s("蕴含:p->q=1\n");
break; }
//等价运算
case 4: {
if ((p&&q) || (!p && !q))
printf_s("等价运算:p<->q=1\n");
else
printf_s("等价运算:p<->q=0\n");
break; }
}
//石否结束
printf_s("是否继续运算 “非零或0”\n");
scanf_s("%d", &t);
} while (t);
return 0;
}
int main()
{
int p, q;
//从键盘读取p的真值
do {
printf("请输入 p 的值(0 或 1)");
scanf_s("%d", &p);
if (p != 0 && p != 1)
printf("输入有误");
} while (p != 0 && p != 1);
//从键盘读取q的真值
do {
printf("请输入 q 的值(0 或 1)");
scanf_s("%d", &q);
if (q != 0 && q != 1)
printf("输入有误");
} while (q != 0 && q != 1);
//调用函数,进行运算的真值判断
LiSan(p, q);