#include<iostream>
#include<cstdio>
#include<stack>
#include<queue>
#include<cstring>
#include<string>
#define N 200
using namespace std;
int f(char c); // 求表达式的优先级
bool f2(char c); // 逻辑表达式数的转换
string MidToPost(char* c); // 求表达式对应的后缀表达式
char GetValuePost(string c);
int main()
{
char str[N];
string post;
char ans;
int i = 0;
while (gets_s(str, N))
{
i++;
post = MidToPost(str);
ans = GetValuePost(post);
printf("Expression %d: %c\n", i, ans);
}
}
int f(char c)
{
if (c == '(') return 4;
if (c == '!') return 3;
if (c == '&') return 2; // 相当于*
if (c == '|') return 1; // 相当于+,优先级最低
else
return 0;
}
bool f2(char c)
{
if (c == 'F') return false; // F相当于0
else return true; // V相当于1
}
string MidToPost(char* c) //求表达式对应的后缀表达式
{
stack<char>
C++ 逻辑表达式求值
最新推荐文章于 2025-06-04 16:25:59 发布