⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.txt

📁 时间片轮和优先调度算法用C编写的,多多支持
💻 TXT
字号:
                  #include<stdio.h>
                  #include<stdlib.h>
                  #include<string.h>


                  #define DEP 6


                  char stack[DEP]; 
                  int top=-1;
                  char a,c,p;
                  int n,x,length;
                  char token[8]/*={'i','*','i','+','i','#'}*/;

                  int xuhao[6][7]={{0,0,0,0,0,0,0},      
                                   {0,1,0,0,1,0,0},
                                   {0,0,2,0,0,7,7},
                                   {0,3,0,0,3,0,0},
                                   {0,0,6,4,0,6,6},
                                   {0,5,0,0,8,0,0}
                                  };
                  char *key[]={"error","E->Te","e->+Te","T->Ft",               
                  
                           "t->*Ft","F->i","t->$","e->$","F->(E)"
                          } ;

                  char cols[]={'0','i','+','*','(',')','#'};   
                  char row[]={'0','E','e','T','t','F'};         

                                                                                 
                              /*c   a*/
                  int compare(char c,char a)                     
                  
                  {   int j,k;
                      j=checkrow(c);
                      k=checkcols(a);
                      return xuhao[j][k];
                  }


                  int checkrow (char c)               
                  
                   {int i;
                     for(i=0;i<=6;i++)
                      if(strcmp(c,row[i])==0)
                        return (i);
                   }


                  int checkcols (char a)             
                 
                    {  int i;
                        for(i=0;i<=7;i++)
                        if(strcmp(a,cols[i])==0)
                            return (i);
                    }


                  int check (char c)                 
                   {int i;
                     for (i=0;i<7;i++)
                       if(strcmp(c,cols[i])==0)
                            return (1);
                     return (0);
                  }


                  void push (char c)                  
                    {if(top<DEP-1)
                       stack[++top]=c;
                     else {   printf("stack is full\n");
                          }
                  }

                  char pop()                 
                    { char temp;
                      if(top>=0){
                                   temp=stack[top];
                                   top--;
                                   return temp;
                                 }
                       else { printf("stack is empty\n");}
                    }

                  void stack_print()    
                  {   int temp=top;
                      int l;
                    for(l=0;l<=temp;l++)
                    printf("%c",stack[l]);
                  }

                  void print()        
                   {   int m;
                      stack_print();

                      printf("\t");
                      for(m=n;m<=7;m++)
                      printf("%c",token[m]);
                      printf("\t%c",a);
                   }

                  void main()               
                  {   int h=0;
                     printf("please input your code,and end with '#':");
                     while(1)                  
                      {
                        p=getchar();

                       token[h++]=p;
                       if (p=='#') break;
                       }
                    push('#');
                    push('E');
                    a=token[0];
                    print();
                    printf("\n");




                   do
                    {


                       c=pop();
                     if(check(c))            
                       {
                          if (c==a)
                         { a=token[++n];print();printf("\n");}
                          else
                         {printf("error\n");break;}
                        }
                      if(!check(c))           
                        {
                          x=compare (c,a);     
                          switch(x)
                           { case 1:
                            
                  push('e');push('T');print();printf("\t%s\n",key[x]);break;
                             case 2:
                            
                  push('e');push('T');push('+');print();printf("\t%s\n",key[x]); 
                  break;
                             case 3:
                            
                  push('t');push('F');print();printf("\t%s\n",key[x]);break;
                             case 4:
                            
                  push('t');push('F');push('*');print();printf("\t%s\n",key[x]);break;
                             case 5:
                             push('i');print();printf("\t%s\n",key[x]);break;
                             case 6:
                               print(); printf("\t%s\n",key[x]); break;
                             case 7:
                               print(); printf("\t%s\n",key[x]); break;
                             case 8:
                             
                  push('(');push('E');push(')');print();printf("\t%s\n",key[x]);break;
                             }
                          }
                      }while(c!='#');          

                      if (c=='#'&&a=='\0')       
                      printf("success!!\n");
                      else printf("error!\n");
                      system("pause");

                  }



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -