zoukankan      html  css  js  c++  java
  • 1231-递归下降语法分析

    消除左递归后的文法是:

    E→TE'

    E'→+TE'|-TE'|ε

    T→FT'

    T'→*FT'|/FT'|ε

    F→(E)|i


    #include<stdio.h> #include<string> char str[10]; int index=0; void E(); void X(); void T(); void Y(); void F(); int main() { int len; int m; printf("请输入要测试的次数:"); scanf("%d",&m); while(m--) { printf("请输入算数表达式:"); scanf("%s",str); len=strlen(str); str[len]='#'; str[len+1]=''; E(); printf("正确语句! "); strcpy(str,""); index=0; } return 0; } void E() { T(); X(); } void X() { if(str[index]=='+'||str[index]=='-') { index++; T(); X(); } } void T() { F(); Y(); } void Y() { if(str[index]=='*'||str[index]=='/') { index++; F(); Y(); } } void F() { if(str[index]=='i') { index++; } else if (str[index]=='(') { index++; E(); if(str[index]==')') { index++; }else{ printf(" 分析失败! "); exit (0); } } else{ printf("分析失败! "); exit(0); } }



  • 相关阅读:
    N-Queens
    Pow(x, n)
    Maximum Subarray
    Spiral Matrix
    Jump Game
    Merge Intervals
    Insert Interval
    Length of Last Word
    Spiral Matrix II
    Amazon 面经
  • 原文地址:https://www.cnblogs.com/xyz--123/p/5089793.html
Copyright © 2011-2022 走看看