推荐阅读: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