回 帖 发 新 帖 刷新版面

主题:布尔表达式的翻译 帮帮忙拉

布尔表达式的翻译程序,要求用逆波兰式输出

回复列表 (共6个回复)

沙发

GG,这属于专家级的题目了,与其在这里问,不如去问教授了~~~~~~~~~
[fly]~~~~~~~~~~~~~~~~~~~~~~~~星    ☆   尘  ★     落~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[/fly]

板凳

晕,没看清啊,不是GG,而是PPMM,对此抱歉~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3 楼

啊这个样子啊那不是很郁闷啊
我们要拿程序去给老师检查才能写报告呢很郁闷的。。。。。。。。。

4 楼

这几天怎么就那么多人问问题???
你会编程输出逆波兰式吧?
(别找我,论坛里聊!)

5 楼

会呀

6 楼


你是哪儿个学校的,怎么这么笨啊,这个都不会啊 ?我帮你写了个,代码在下面啊:
#include<iostream.h>
#include<iostream>
#include"head.h"
extern int index;
extern WORDS word[20];
extern int array[20];

int F(int);
int G(int);
int T(int);
int E(int);
void Grammar(int length)
{
    
    int i=0;
    while((i<length)&&(word[i].ID!=99))
    {
        i=E(i);
        if(word[i].ID==99)
        {
            cout<<"语法错误!请输入正确的句子"<<endl;
            exit(0);
        }
    }

}
int E (int i)
{
    int ii;
    i=T(i);
    while (word[i].ID==1||word[i].ID==2)
    {
        ii=i;
        i++;                    //向前移动一个位置
        i=T(i);    
        array[index]=ii;//
        index++;
    }
    return i;
}

int T(int i)
{
    int ii;
    i=G(i);
    while(word[i].ID==4||word[i].ID==5||word[i].ID==6||word[i].ID==7||word[i].ID==8||word[i].ID==9)
    {
        ii=i;
        i++;                //向前移动一个位置
        i=G(i);
        array[index]=ii;
        index++;
    }
    return i;
}
int G(int i)
{
    int ii;
    i=F(i);
    while(word[i].ID==3)
    {
        ii=i;
        i++;
        i=F(i);
        array[index]=ii;
        index++;
    }
    return i;
}
int F(int i)
{
    if (word[i].ID==0)        //处理标识符
    {
        array[index]=i;
        index++;
        i++;
    }
    else
    {
        if(word[i].ID==10)
        {
            i++;                //ADVANCE();
            i=E(i);
            if (word[i].ID==11)
                i++;            //ADVANCE();
            else
                word[i].ID=99;
        }
        else if(word[i].ID==3)
            ;
        else
        {
            cout<<"括号不匹配!请输入正确句子 "<<endl;
            exit(0);
            word[i].ID=99;//ERROR();
        }
    }
    return i;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册