离散实验:计算真值

实验内容:求任意一个命题联结词的真值表。要求从键盘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);


猜你喜欢

转载自blog.csdn.net/qq_15227469/article/details/80248156