C/C++ 生成包含三个变量和两个逻辑连接词的真值表

推荐阅读:Python基础自学实用笔记(总和篇)-By Ryan_3610

2、题目:生成包含三个变量和两个逻辑连接词的真值表

2.1代码

#include <iostream>
#include <stdio.h>
using namespace std;
//打印表头
void printtitle(char a,char b,char c,int one,int two)
{
	printf("%c    %c    %c     %c",a,b,c,a);
    switch(one)
	{
	    case 0:printf("~%c",b);break;
		case 1:printf("^%c",b);break;
		case 2:printf("\\/%c",b);break;
		case 3:printf("->%c",b);break;
		case 4:printf("<->%c",b);break;
	}
	switch(two)
	{
		case 0:printf("~%c\n",c);break;
		case 1:printf("^%c\n",c);break;
		case 2:printf("\\/%c\n",c);break;
		case 3:printf("->%c\n",c);break;
		case 4:printf("<->%c\n",c);break;
	}
}
//真值运算
int yunsuan(int p,int q,int connective)
{
    if(connective==1)
	{
		return p*q;
	}
	else if(connective==2)
	{
		return ((p+q)/2+(p+q)%2);
	}
	else if(connective==3)
	{
		if(p==0)
			return 1;
		else
		{
			if(q==1)
				return 1;
			else
				return 0;
		}
	}
	else if(connective==4)
	{
		if(p==q)
			return 1;
		else
			return 0;
	}
}

int main()
{
//输入
    char a,b,c;
    int m,n;
    cout<<"逻辑联结词选择:“非”请输入0,“与”请输入1,“或”请输入2,“蕴涵”请输入3,“双向蕴涵”请输入4!"<<endl;
    cout<<"输入第1个变量:";         cin>>a;
    cout<<"输入第一个逻辑连接词:";  cin>>m;
    cout<<"输入第2个变量:";         cin>>b;
    cout<<"输入第二个逻辑连接词:";  cin>>n;
    cout<<"输入第3个变量:";         cin>>c;
//输出表头
    printtitle(a,b,c,m,n);
//输出格式及运算结果
    int i,j,k;
    for (i=0;i<2;i++)
    {
        for (j=0;j<2;j++)
        {
            for (k=0;k<2;k++)
            {
                printf("%d    %d    %d      ",i,j,k);
                if(m<=n) cout<<yunsuan(yunsuan(i,j,m),k,n)<<endl;
                else cout<<yunsuan(i,yunsuan(j,k,n),m)<<endl;
            }
        }
    }
return 0;
}

2.2测试

a
1
b
4
c

2.3结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45879055/article/details/106784038