免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2513 | 回复: 2
打印 上一主题 下一主题

我的魔王语言解释程序问题在哪? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-05 18:38 |只看该作者 |倒序浏览
魔王说着人类听不懂的话,但翻译过后就可以听懂。翻译过程如下:
魔王语言中的A转换为sae,B转换为tAdA,其余的的都不变
都是在小括号内必须如此转换abcde)翻译成aeadacaba.
像B(ehnxgz)B则翻译成tsaedsaeezegexenehetsaedsae

我的程序如下,用VC++开发:
#include <stdio.h>;
#include <stdlib.h>;
#define MAXQUEUE 200
int queue[MAXQUEUE];
int front=-1;
int rear=-1;

void EnQueue(char value)           //进队
{
        if(rear>;=MAXQUEUE)             //队满
                return -1;
        queue[++rear]=value;
}

char DeQueue()                     //出队
{
        return queue[++front];
}


void main()
{
        int i=0;
        char e,g;
        char reverse[50];
        char *get_str;
        printf("请输入魔王语言:";
    gets(get_str);
        while(*get_str!='\0')EnQueue(*get_str);
    while(front!=rear)                       //判断队列是否为空
        {
                        g=DeQueue();
                       
                        if(g=='(')
                        {
                                e=DeQueue();                 //将括号内的第一个元素赋值给e
                                while((g=DeQueue())!=')')    //对括号内的元素进行逆置并存入数组
                                {
                                        reverse[i++]=g;
                                }
                                while(i>;=0)                  //打印括号内元素
                                {
                                        printf("%c",e);     
                                        if(reverse=='A')
                                                printf("sae";
                                        if(reverse=='B')
                                                printf("tsaedsae";
                                        else printf("%c",reverse);
                                        i--;
                                }
                        }
            if(g=='A')printf("sae";          //当元素为A,B的情况
                        if(g=='B')printf("tsaedsae";
            else printf("%c",g);
        }
}

请问问题在哪?能通过编译,不能执行,在此先多谢!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-12-05 19:20 |只看该作者

我的魔王语言解释程序问题在哪?

好多错误啊!!!
  1. char *get_str;
  2. printf("请输入魔王语言:");
  3. gets(get_str);
  4. while(*get_str!='\0')EnQueue(*get_str);
复制代码

改为
  1. char str[100], *get_str=str;
  2. printf("请输入魔王语言:");
  3. gets(str);
  4. while(*get_str!='\0')EnQueue(*get_str++);
复制代码
  1. e=DeQueue(); //将括号内的第一个元素赋值给e
复制代码

前面加上i=0;
  1. while(i>;=0) //打印括号内元素
复制代码

前面加一句
  1. i--;
复制代码

  1. if(g=='B')printf("tsaedsae");
复制代码

后面加一句
  1. if(g==')') continue;
复制代码

论坛徽章:
0
3 [报告]
发表于 2004-12-05 20:48 |只看该作者

我的魔王语言解释程序问题在哪?

谢谢高手的一席话,简直胜读十年书,我现在终于解决了,3ks
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP