C语言实现逻辑联结词与命题公式真值表生成
#include<stdio.h>
// 逻辑与 int logicalAnd(int a, int b) { return a && b; }
// 逻辑或 int logicalOr(int a, int b) { return a || b; }
// 逻辑非 int logicalNot(int a) { return !a; }
// 逻辑异或 int logicalXor(int a, int b) { return a ^ b; }
// 条件 int conditional(int a, int b) { return (!a) || b; }
int main() { int a, b, c, i, j, k; int result;
printf("请输入三个命题变元的真值(0或1):\n");
scanf("%d%d%d", &a, &b, &c);
printf("真值表如下:\n");
printf("a\tb\tc\t结果\n");
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
for (k = 0; k < 2; k++) {
result = conditional(a, logicalAnd(b, logicalNot(c)));
printf("%d\t%d\t%d\t%d\n", i, j, k, result);
}
}
}
// 判断命题公式的类型
if (result == 0) {
printf("该命题公式为矛盾式\n");
} else if (result == 1) {
printf("该命题公式为恒真式\n");
} else {
printf("该命题公式为可满足式\n");
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/rSW 著作权归作者所有。请勿转载和采集!