c语言中怎样判断(exp)的真假
时间: 2023-05-18 12:04:31 浏览: 212
在C语言中,可以使用关系运算符来判断一个表达式(exp)的真假。例如,使用“==”运算符来判断两个值是否相等,使用“!=”运算符来判断两个值是否不相等,使用“>”、“<”、“>=”、“<=”运算符来判断大小关系等。如果表达式的值为0,则被视为假,否则为真。
相关问题
描述 输入一个布尔表达式,请你输出它的真假值。 比如:( V | V ) & F & ( F | V ) V表示true,F表示false,&表示与,|表示或,!表示非。 上式的结果是F 输入 输入包含多行,每行一个布尔表达式,表达式中可以有空格,总长度不超过1000 输出 对每行输入,如果表达式为真,输出"V",否则出来"F",写出c语言代码
以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char exp[1000]; // 存储表达式的字符数组
while (fgets(exp, sizeof(exp), stdin)) { // 读入表达式
int len = strlen(exp);
if (exp[len-1] == '\n') { // 如果最后一位是换行符,将其替换成结束符
exp[len-1] = '\0';
}
// 计算表达式的真假值
int result = 1; // 初始值设为真
int i = 0;
while (exp[i] != '\0') {
if (exp[i] == ' ') { // 跳过空格
i++;
continue;
}
if (exp[i] == 'V') { // V为真
result = 1;
} else if (exp[i] == 'F') { // F为假
result = 0;
} else if (exp[i] == '!') { // 非运算
result = !result;
} else if (exp[i] == '&') { // 与运算
i++;
if (exp[i] == ' ') { // 跳过空格
i++;
}
if (exp[i] == 'V') {
result = result && 1;
} else {
result = result && 0;
}
} else if (exp[i] == '|') { // 或运算
i++;
if (exp[i] == ' ') { // 跳过空格
i++;
}
if (exp[i] == 'V') {
result = result || 1;
} else {
result = result || 0;
}
}
i++;
}
// 输出结果
if (result) {
printf("V\n");
} else {
printf("F\n");
}
}
return 0;
}
```
阅读全文