| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2107 人关注过本帖
标题:求括号的匹配,求结果?
只看楼主 加入收藏
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 9楼 樾宝
你看看前面的帖子,分号的事有几个人说过了,还是不加。细心点这话哪过份了,如果连这话都受不了以后怎么面对社会

总有那身价贱的人给作业贴回复完整的代码
2011-11-06 11:42
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:0 
看了半天  ,迷茫了~~
报了这多错误!
if(e=='('&&c==')'return 1;
if(e=='['&&c==']'return 1;//这块应该括号补全吧

1>e:\编程\函数调用\函数调用\加减乘除.cpp(5): error C2144: 语法错误:“char”的前面应有“;”
1>e:\编程\函数调用\函数调用\加减乘除.cpp(5): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(6): error C2146: 语法错误: 缺少“;”(在标识符“typedf”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(6): error C2143: 语法错误 : 缺少“;”(在“<class-head>”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(6): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(6): error C2086: “int typedf”: 重定义
1>          e:\编程\函数调用\函数调用\加减乘除.cpp(5) : 参见“typedf”的声明
1>e:\编程\函数调用\函数调用\加减乘除.cpp(7): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(7): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(7): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(8): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(8): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(8): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(11): warning C4094: 无标记的“struct”未声明符号
1>e:\编程\函数调用\函数调用\加减乘除.cpp(11): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(11): error C2059: 语法错误:“}”
1>e:\编程\函数调用\函数调用\加减乘除.cpp(11): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(11): error C2059: 语法错误:“}”
1>e:\编程\函数调用\函数调用\加减乘除.cpp(12): error C2065: “sqstack”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(12): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(13): error C2448: “initstack”: 函数样式初始值设定项类似函数定义
1>e:\编程\函数调用\函数调用\加减乘除.cpp(19): error C2065: “stack”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(19): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(19): error C2448: “push”: 函数样式初始值设定项类似函数定义
1>e:\编程\函数调用\函数调用\加减乘除.cpp(30): error C2065: “sqstack”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(30): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(30): error C2065: “e”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(30): error C2448: “pop”: 函数样式初始值设定项类似函数定义
1>e:\编程\函数调用\函数调用\加减乘除.cpp(34): error C2065: “sqstack”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(34): error C2146: 语法错误: 缺少“)”(在标识符“s”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(34): error C2059: 语法错误:“)”
1>e:\编程\函数调用\函数调用\加减乘除.cpp(34): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(34): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(43): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\编程\函数调用\函数调用\加减乘除.cpp(43): error C2065: “sqstack”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(43): error C2146: 语法错误: 缺少“;”(在标识符“s”的前面)
1>e:\编程\函数调用\函数调用\加减乘除.cpp(43): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(45): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(45): error C3861: “initstack”: 找不到标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(48): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(49): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(49): error C3861: “push”: 找不到标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(51): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(51): error C3861: “pop”: 找不到标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(53): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(53): error C3861: “push”: 找不到标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(54): error C2065: “s”: 未声明的标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(54): error C3861: “push”: 找不到标识符
1>e:\编程\函数调用\函数调用\加减乘除.cpp(59): error C2065: “s”: 未声明的标识符
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

兴趣是编程最好的老师
2011-11-06 11:52
sun_shang001
Rank: 2
等 级:论坛游民
帖 子:103
专家分:78
注 册:2011-10-27
收藏
得分:3 
回复 11楼 embed_xuel
说的对   这根本就是善意的提醒嘛  希望楼主也别往心里去  编程需要细心 也要有豁达的胸襟
2011-11-06 11:58
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你的程序是括号匹配,但是代码就有括号不匹配,if(e=='('&&c=')' return 1;  !!

总有那身价贱的人给作业贴回复完整的代码
2011-11-06 12:03
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:3 
程序代码:
#include"stdio.h"
#include <malloc.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
#define OK 1
#define ERROR 0
typedef char  ElemType ;  /*将char类定义为ElemType*/

typedef struct{          /*定义一个栈类型*/
    ElemType *base;
    ElemType *top;
    int stacksize;
}sqstack;

void initstack(sqstack *s)//要声明返回为空类型
{
    s->base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));//未引用头文件malloc.h;s->stack改为s->base;
    if(!s->base) exit(0);//为引用头文件stdlib.h
    s->top=s->base;
    s->stacksize=STACK_INIT_SIZE;
}

void push(sqstack *s, ElemType e)//少了参数e
{
    if(s->top - s->base >= s->stacksize)
    {
        s->base=(ElemType *)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(ElemType));//函数malloc改为realloc
        if(!s->base) exit(0);
        s->top=s->base+s->stacksize; 
        s->stacksize += STACKINCREMENT;
    }
  //去掉  *(s->stop)=e;
    *(s->top++)=e;//改为*(s->top++) = e;
}

bool pop(sqstack *s, ElemType *e)
{
    if(s->top == s->base)//将=改为==
        return ERROR;
    *e = *--(s->top);
    return OK;
}

int stackLen(sqstack &s)//s前要加&改为引用
{
    return ((s.base-s.top)/sizeof(sqstack));   //计算栈的长度
}

bool match(char e,char c)
{
    if((e=='(') && (c=')') )//少了右括号
        return OK;
    if((e=='[') && (c==']'))//少了右括号
        return OK;
    return ERROR;
}

int main()
    {
        sqstack s;
        char e,c;
        initstack(&s);
        printf("请输入符号,最后以\"#\"结束\n");
        scanf("%c",&c);
        while(c!='#')
        {
            if(!stackLen(s))
             push(&s,c);
          else
              {
                  pop(&s,&e);
                 if(!match(e,c))
                 {
                      push(&s,e);
                      push(&s,c);
                 }
             }   
        scanf("%c",&c);
        }
        if(!stackLen(s)) printf("the branchets are matched\n");
        else printf("the branchets are matched\n");
//        getch();
        return 0;
    }

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-11-06 12:33
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
收藏
得分:0 
回复 8楼 embed_xuel
你还记得我吗?
2013-11-04 02:23
快速回复:求括号的匹配,求结果?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033221 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved