自动转换机简易版

#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\n",x[i],f1[i],x[k]);
                        printf("f(%d,%c)=%d\n",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\n",x[i1],f1[i],x[i1+1]);
                        printf("f(%d,%c)=%d\n",x[i1+1],f1[i+1],x[i1+1]);
                        i=i+1;
                        i1=i1+1;
                     }

                 }
            else
               {
                    if(s!=0)
                    {

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

        }
        else
        {

              i3=i1=i;
              while(f2[i3]!=‘0‘)
              {
                 if(f2[i3]==‘&‘ && f2[i3+2]==‘&‘)
                 {
                      printf("f(%d,%c)=%d\n",x[i1],f2[i3],x[i1+1]);
                      printf("f(%d,%c)=%d\n",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\n",x[i1],f2[i3],x[i1+1]);
                     f2[i3]=‘0‘;
                     i1=i1+1;
                     i3=i3+1;
                     k=i1;
                     s=s+1;
                 }
              }
            i=i-1;
          // printf("f(%d,%c)=%d\n",x[i],f1[i],x[i+1]);
           //printf("f(%d,%c)=%d\n",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);
       printfc(f1,f2,n);
       //ZDZHJ(a,n);
}
时间: 2024-10-16 16:54:56

自动转换机简易版的相关文章

自动转换机简单版

#include<stdio.h>#define N 100void 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]=

Python写地铁的到站的原理简易版

Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这首先站点固定的名称固定的站点名称长度可知道,这不是符合列表嘛[第一站,第二站,...,最后一站] 把这写站名放入列表中一个for循环自动帮你取每个站名 你可以加入time.sleep来设置每个站的之间的时间, 过长江隧道的时间可以单独加个if判断站名改变默认时间就行,这里还可以通过站名判断是否需要转

使用nodeJS创建API接口,连接mysql数据库(新手向简易版)

博主在学习安卓课程做期末程序的时候就一直想自己做API了,结果网上的教程感觉都太杂,很多都文不对题,找不到一个明确的思路,结果就只能放弃改用jdbc实现数据库交互,现在学了前端,又接触了一点nodeJS之后,才终于有了思路,最近也成功给自己放在服务器上的网站部署了API.现在就来分享一下,也顺便给自己留个备份. ps:只是自己突然想到的做法,而且个人觉得真的是简易版,可能不标准,但亲测能用. 一.前期准备 首先声明:不懂也没关系,直接仿照代码,需要修改的地方我会用红色标注出来,不过mysql一定

C#调用OpenCV开发简易版美图工具

前言 在C#调用OpenCV其实非常简单,因为C#中有很多OPenCV的开源类库. 本文主要介绍在WPF项目中使用OpenCVSharp3-AnyCPU开源类库处理图片,下面我们先来做开发前的准备工作. 准备工作 首先,我们先创建一个WPF项目. 然后,在Nuget上搜索OpenCVSharp,如下图: 接着,我们选择OpenCVSharp3-AnyCPU选项进行安装 . 安装了OpenCVSharp3-AnyCPU后,我们的项目会自动引入4个类库,如下图: 到这里,我们的准备工作就完成了,非常

简易版DES加密和解密详解

在DES密码里,是如何进行加密和解密的呢?这里采用DES的简易版来进行说明. 二进制数据的变换 由于不仅仅是DES密码,在其它的现代密码中也应用了二进制数据,所以无论是文章还是数字,都需要将明文变换为二进制数据,如图表所示,这里仅将使用的16字符(其中含有1个没有意义的空字符),将每个字符都对应不同的4bit的二进制编码进行变换,将明文表示成"0"和"1"的系列 表2.8 表2.9 本文部分参考自漫画密码,此文博主花了几个小时的时间整理,转载请注明http://ww

简易版聊天系统实现 Socket VS NIO两种实现方式

说是简单聊天系统,压根不能算是一个系统,顶多算个雏形.本文重点不在聊天系统设计和实现上,而是通过实现类似效果,展示下NIO 和Socket两种编程方式的差异性.说是Socket与NIO的编程方式,不太严谨,因为NIO的底层也是通过Socket实现的,但又想不出非常好的题目,就这样吧. 主要内容 Socket方式实现简易聊天效果 NIO方式实现简易聊天效果 两种方式的性能对比 前言 预期效果,是客户端之间进行"广播"式聊天,类似于QQ群聊天.希望以后有机会,以此简易版为基础,不断演进,演

杭电2083(简易版之最短距离)

简易版之最短距离 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 2   Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都

Android学习之路——简易版微信为例(三)

最近好久没有更新博文,一则是因为公司最近比较忙,另外自己在Android学习过程和简易版微信的开发过程中碰到了一些绊脚石,所以最近一直在学习充电中.下面来列举一下自己所走过的弯路: (1)本来打算前端(即客户端)和后端(即服务端)都由自己实现,后来发现服务端已经有成熟的程序可以使用,如基于XMPP协议的OpenFire服务器程序:客户端也已经有成熟的框架供我们使用,如Smack,同样基于XMPP协议.这一系列笔记式文章主要是记录自己学习Android开发的过程,为突出重点(Android的学习)

HDU 2083 简易版之最短距离 --- 水题

HDU 2083 简易版之最短距离 /* HDU 2083 简易版之最短距离 */ #include <cstdio> #include <algorithm> using namespace std; const int maxn = 505; int a[maxn]; int main() { #ifdef _LOCAL freopen("D:\\input.txt", "r", stdin); #endif int t; scanf(&