zoukankan      html  css  js  c++  java
  • 自动转换机简易版

    #include<stdio.h>
    
    void getch(char a[],int n,char c1[],char c2[],char c3[],char f1[],char f2[])
    {
        int i,i1=0,i2=0;
        for(i=0;i<n;i++)
        {
            if(a[i]=='*')
            {
                c2[i-1]=a[i-1];
    
            }
        }
        for(i=0;i<n;i++)
        {
            if(a[i]=='|')
            {
                c1[i]=a[i+1];
            }
        }
    
        for(i=0;i<n;i++)
        {
            if(a[i]=='|')
            {
              i=i+1;
            }
            else if(a[i+1]=='*')
            {
                i=i+1;
            }
            else if(a[i]=='*')
            {
    
            }
            else
            {
                c3[i]=a[i];
            }
        }
    
        for(i=0;i<n;i++)
        {
            if(c3[i]!='0' && c2[i+1]=='0')
            {
                f1[i1]=c3[i];
                i1=i1+1;
            }
    
             else if(c3[i]!='0' && c1[i]=='0' && c2[i+1]!='0')
            {
               f1[i1]=c3[i1];
               i1=i1+1;
               f1[i1]='&';
               f1[i1+1]=c2[i+1];
               f1[i1+2]='&';
               i1=i1+3;
            }
            else if(c3[i]=='0' && c1[i]=='0' && c2[i+1]!='0')
            {
    
               f1[i1]='&';
               f1[i1+1]=c2[i+1];
               f1[i1+2]='&';
               i1=i1+3;
            }
            else if(c3[i]=='0' && c1[i]=='0' && c2[i1]!='0')
            {
    
               f1[i1]='&';
               f1[i1+1]=c2[i];
               f1[i1+2]='&';
               i1=i1+3;
            }
              else if(c1[i]!='0' && c2[i+1]=='0')
            {
                if(c2[i-2]!='0' && c1[i-3]=='0')
                {
                      i2=i1-3;
                      f2[i2]=c1[i];
                      i2=i2+1;
                }
                else
                {
                      i2=i1-1;
                      f2[i2]=c1[i];
                      i2=i2+1;
                }
    
            }
            else if(c1[i]!='0' && c2[i+1]!='0')
            {
                if(c1[i-1]=='0'&&c1[i-3]=='0')
                {
                   i2=i1;
                   i2=i2-3;
                   f2[i2]='&';
                   f2[i2+1]=c2[i+1];
                   f2[i2+2]='&';
                   i2=i2+1;
                }
                else
                {
                   i2=i1;
                   i2=i2-1;
                   f2[i2]='&';
                   f2[i2+1]=c2[i+1];
                   f2[i2+2]='&';
                   i2=i2+1;
                }
    
            }
    
            else
            {
    
            }
        }
    }
    
    void printfc(char f1[],char f2[],int n)
    {
        int i=0,i1=0,s=0,i3=0,k;
        int x[100];
        for(i=0;i<2*n;i++)
        {
            x[i]=i;
        }
        i=0;
        while(f1[i]!='0')
        {
            if(f2[i]=='0')
            {
    
                if(f1[i]=='&' && f1[i+2]=='&')
                     {
                         if(s!=0)
                         {
                            k=k+1;
                            printf("f(%d,%c)=%d
    ",x[i],f1[i],x[k]);
                            printf("f(%d,%c)=%d
    ",x[k],f1[i+1],x[k]);
                            i=i+1;
                            i1=i1+1;
                            k=k+1;
                            s=s-1;
                         }
                         else
                         {
                            printf("f(%d,%c)=%d
    ",x[i1],f1[i],x[i1+1]);
                            printf("f(%d,%c)=%d
    ",x[i1+1],f1[i+1],x[i1+1]);
                            i=i+1;
                            i1=i1+1;
                         }
    
                     }
                else
                   {
                        if(s!=0)
                        {
    
                           printf("f(%d,%c)=%d
    ",x[i],f1[i],x[k]);
                           k=k+1;
                           s=s-1;
                        }
                    else
                        {
                            printf("f(%d,%c)=%d
    ",x[i1],f1[i],x[i1+1]);
                            i1=i1+1;
                        }
                   }
    
            }
            else
            {
    
                  i3=i;
                  i1=i;
                  while(f2[i3]!='0')
                  {
                     if(f2[i3]=='&' && f2[i3+2]=='&')
                     {
                          printf("f(%d,%c)=%d
    ",x[i-1],f2[i3],x[i1+1]);
                          printf("f(%d,%c)=%d
    ",x[i1+1],f2[i3+1],x[i1+1]);
                          f2[i3]='0';
                          f2[i3+1]='0';
                          i3=i3+2;
                          i1=i1+1;
    
                     }
                     else
                     {
                         printf("f(%d,%c)=%d
    ",x[i-1],f2[i3],x[i1+1]);
    
                         i1=i1+1;
    
                         if(f2[i3]=='&')
                         {
                             k=i1;
                         }
                         else
                         {k=i1+1;}
                         f2[i3]='0';
                         i3=i3+1;
                         s=s+1;
                     }
                  }
                i=i-1;
              // printf("f(%d,%c)=%d
    ",x[i],f1[i],x[i+1]);
               //printf("f(%d,%c)=%d
    ",x[i],f2[i],x[i+1]);
            }
            i=i+1;
        }
    }
    
    main()
    {
           char a[100];
           char c1[100],c2[100],c3[100],f1[100],f2[100];
           int m, n,i,j;
           printf("请你输入字符串在X[i]数组中");
           gets(a);
           n=strlen(a);
           for(i=0;i<2*n;i++)
           {
               f1[i]=f2[i]=c1[i]=c2[i]=c3[i]='0';
           }
           getch(a,n,c1,c2,c3,f1,f2);
    
           for(i=0;i<n;i++)
           {
               printf("%c  ",c3[i]);
           }
           printf("
    ");
            for(i=0;i<n;i++)
           {
               printf("%c  ",c1[i]);
           }
           printf("
    ");
           for(i=0;i<n;i++)
           {
               printf("%c  ",c2[i]);
           }
           printf("
    ");
    
            for(i=0;i<2*n;i++)
           {
               printf("%c  ",f1[i]);
           }
           printf("
    ");
            for(i=0;i<2*n;i++)
           {
               printf("%c  ",f2[i]);
           }
    
           printfc(f1,f2,n);
           //ZDZHJ(a,n);
    }
  • 相关阅读:
    <转>CSS3 Media Queries 实现响应式设计
    css3的display:box研究
    CSS3制作渐变文字
    (转)apple-touch-icon-precomposed 和 apple-touch-icon属性区别
    (转)移动平台的meta标签
    day 57 jQuery插件
    day56 文件 文档处理,事件
    day 55 jQuery-part2
    day 54 jQuery, part-1
    day 52 dom 事件
  • 原文地址:https://www.cnblogs.com/wwc000/p/6096797.html
Copyright © 2011-2022 走看看