zoukankan      html  css  js  c++  java
  • 递归下降

    #include<stdio.h>  
    char scaner(char*input,int* p);  
    void S(char*input,int* p);  
    void T(char*input,int* p);  
    void T1(char*input,int* p);  
    void error();  
    int sym=0;  
    int main()  
    {  
     int p=0;  
     char input[200]={0};  
      
     printf("请输入你要识别的单词
    ");  
     printf("单词只能由 ( ) a ^ , 组成,且单词必须以$#结尾
    ");  
     scanf("%[^#]s",input);  
     printf("the word you input is  : %s
    ",input);  
     sym=scaner(input,&p);  
     S(input,&p);  
       
     if(sym=='$')  
          printf("sucess
    ");  
     else   
          printf("fail");  
            
    do   
    {  
       ;   }while(1);        
          
     return 0;      
    }  
    char scaner(char*input,int *p)  
    {  
     char temp=input[*p];  
      (*p)++;  
     return temp;       
    }  
    void S(char*input,int* p)  
    {   
     if(sym=='a'||sym=='^')  
           sym=scaner(input,p);  
     else if(sym=='(')  
          {  
           sym=scaner(input,p);  
           T(input,p);  
           if(sym==')')  
                  sym=scaner(input,p);  
           else   
                  error();       
          }  
     return ;  
     }  
     void T(char*input,int* p)  
     {  
     S(input,p);  
     T1(input,p);  
     return ;       
     }  
     void T1(char*input,int* p)  
     {  
      if(sym==','){  
           sym=scaner(input,p);  
           S(input,p);  
           T1(input,p);}   
      else if(sym!=')')  
           error();  
                 
     }  
     void error()  
     {  
            printf("error!!!");  
            return ;  
            }
  • 相关阅读:
    课后listview作业
    安卓sql
    activity带数据跳转
    安卓第四周作业
    15周作业
    十三周作业-集合
    十三周上机练习
    12周作业
    linux
    Questions.
  • 原文地址:https://www.cnblogs.com/verson/p/6187208.html
Copyright © 2011-2022 走看看