各位大神帮忙看看为什么这个会无法编译,代码本身没有错误,就是无法编译

#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()
{
    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上
无法编译,显示说我三个函数都是无定义,这是为什么??


2个回答

main()上面的这个函数 bool factor_expression() 改成 bool factor_value();

bool factor_expression()

bool factor_value();

确定使用哪个??

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐