#include <iostream>
#include <string>
using namespace std;
string s;
string ori;
int cnt = 0;
bool expression_value();
bool term_value();
bool factor_value();
bool expression_value()
{
bool result = term_value();
char next;
bool more = true;
while(more)
{
next = ori[cnt];
if(next == '&')
{
cnt++;
bool next_expression = term_value();
result = next_expression && result;
}
else if(next == '|')
{
cnt++;
bool next_expression = term_value();
result = next_expression || result;
}
else
more = false;
}
return result;
}
bool term_value()
{
bool result = factor_value();
char next;
bool more = false;
while(more)
{
next = ori[cnt];
if(next == ' ')
continue;
if(next == '&')
{
cnt++;
bool next_expression = term_value();
result = next_expression && result;
}
else if(next == '|')
{
cnt++;
bool next_expression = term_value();
result = next_expression || result;
}
else
more = false;
}
return result;
}
bool factor_expression()
{
bool result = false;
char c;
c=ori[cnt];
if(c == '!')
{
cnt++;
result = !result;
}
if(c == '(')
{
cnt++;
result = expression_value();
cnt++;
}
if(c == 'V')
return true;
if(c== 'F')
return false;
return result;
}
int main()
{
string s,ori;
int ncase=0;
while(getline(cin,s))
{
ncase++;
for(int i = 0;i<s.size();i++)
{
char ch = s[i];
if(s[i]!=' ')
ori+=ch;
}
bool result = expression_value();
if(result)
cout<<"Expression "<<ncase<<": V"<<endl;
else
cout<<"Expression "<<ncase<<": F"<<endl;
ori.clear();
cnt=0;
}
return 0;
}
提交到OJ上面显示我的三个函数无定义,这是为什么??