#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;

}

C语言实现逻辑联结词与命题公式真值表生成

原文地址: https://www.cveoy.top/t/topic/rSW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录