Link_Ray 2017-07-30 12:03 采纳率: 60%
浏览 934
已采纳

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


#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条回答 默认 最新

  • 大米粥哥哥 2017-07-31 07:43
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示