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

    #include<stdio.h>
    #define N 100
    void getch(a,n,c,d,g,f,h);
    void printfc(p,q,n);
    main()
    {
    char a[N];
    char c[N],d[N],g[N],f[N],h[N];
    int m, n,i,j;
    printf("请你输入字符串在X[i]数组中:");
    gets(a);
    n=strlen(a);
    for(i=0;i<2*n;i++)
    {
    f[i]=h[i]=c[i]=d[i]=g[i]='0';
    }
    getch(a,n,c,d,g,f,h);
    printfc(f,h,n);
    }
    void getch(char a[],int n,char c[],char d[],char g[],char f[],char h[])
    {
    int i,i1=0,i2=0;
    for(i=0;i<n;i++)
    {
    if(a[i]=='*')
    {
    d[i-1]=a[i-1];

    }
    }
    for(i=0;i<n;i++)
    {
    if(a[i]=='|')
    {
    c[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
    {
    g[i]=a[i];
    }
    }

    for(i=0;i<n;i++)
    {
    if(g[i]!='0' && d[i+1]=='0')
    {
    f[i1]=g[i];
    i1=i1+1;
    }

    else if(g[i]!='0' && c[i]=='0' && d[i+1]!='0')
    {
    f[i1]=g[i1];
    i1=i1+1;
    f[i1]='&';
    f[i1+1]=d[i+1];
    f[i1+2]='&';
    i1=i1+3;
    }
    else if(g[i]=='0' && c[i]=='0' && d[i+1]!='0')
    {

    f[i1]='&';
    f[i1+1]=d[i+1];
    f[i1+2]='&';
    i1=i1+3;
    }
    else if(g[i]=='0' && c[i]=='0' && d[i1]!='0')
    {

    f[i1]='&';
    f[i1+1]=d[i];
    f[i1+2]='&';
    i1=i1+3;
    }
    else if(c[i]!='0' && d[i+1]=='0')
    {
    if(d[i-2]!='0' && c[i-3]=='0')
    {
    i2=i1-3;
    h[i2]=c[i];
    i2=i2+1;
    }
    else
    {
    i2=i1-1;
    h[i2]=c[i];
    i2=i2+1;
    }

    }
    else if(c[i]!='0' && d[i+1]!='0')
    {
    if(c[i-1]=='0'&&c[i-3]=='0')
    {
    i2=i1;
    i2=i2-3;
    h[i2]='&';
    h[i2+1]=d[i+1];
    h[i2+2]='&';
    i2=i2+1;
    }
    else
    {
    i2=i1;
    i2=i2-1;
    h[i2]='&';
    h[i2+1]=d[i+1];
    h[i2+2]='&';
    i2=i2+1;
    }

    }

    else
    {

    }
    }
    }

    void printfc(char p[],char q[],int n)
    {
    int i=0,i1=0,s=0,i3=0,k;
    int x[N];
    for(i=0;i<2*n;i++)
    {
    x[i]=i;
    }
    i=0;
    while(p[i]!='0')
    {
    if(q[i]=='0')
    {

    if(p[i]=='&' && p[i+2]=='&')
    {
    if(s!=0)
    {
    k=k+1;
    printf("f(%d,%c)=%d ",x[i],p[i],x[k]);
    printf("f(%d,%c)=%d ",x[k],p[i+1],x[k]);
    i=i+1;
    i1=i1+1;
    k=k+1;
    s=s-1;
    }
    else
    {
    printf("f(%d,%c)=%d ",x[i1],p[i],x[i1+1]);
    printf("f(%d,%c)=%d ",x[i1+1],p[i+1],x[i1+1]);
    i=i+1;
    i1=i1+1;
    }

    }
    else
    {
    if(s!=0)
    {

    printf("f(%d,%c)=%d ",x[i],p[i],x[k]);
    k=k+1;
    s=s-1;
    }
    else
    {
    printf("f(%d,%c)=%d ",x[i1],p[i],x[i1+1]);
    i1=i1+1;
    }
    }

    }
    else
    {

    i3=i;
    i1=i;
    while(q[i3]!='0')
    {
    if(q[i3]=='&' && q[i3+2]=='&')
    {
    printf("f(%d,%c)=%d ",x[i-1],q[i3],x[i1+1]);
    printf("f(%d,%c)=%d ",x[i1+1],q[i3+1],x[i1+1]);
    q[i3]='0';
    q[i3+1]='0';
    i3=i3+2;
    i1=i1+1;

    }
    else
    {
    printf("f(%d,%c)=%d ",x[i-1],q[i3],x[i1+1]);

    i1=i1+1;

    if(q[i3]=='&')
    {
    k=i1;
    }
    else
    {k=i1+1;}
    q[i3]='0';
    i3=i3+1;
    s=s+1;
    }
    }
    i=i-1;
    }
    i=i+1;
    }
    }

  • 相关阅读:
    AJPFX总结java开发常用类(包装,数字处理集合等)(三)
    AJPFX总结java开发常用类(包装,数字处理集合等)(二)
    AJPFX总结java开发常用类(包装,数字处理集合等)(一)
    AJPFX关于面向对象之封装,继承,多态 (下)
    AJPFX关于面向对象之封装,继承,多态 (上)
    Android IntentFilter匹配规则
    细说Activity与Task(任务栈)
    androidStudio 打包与混淆
    Android activity之间的跳转和数据传递
    android开发中的 Activity 与 Context 区别与联系
  • 原文地址:https://www.cnblogs.com/qq2647409627/p/6131202.html
Copyright © 2011-2022 走看看