就命啊谁能帮我看看这道题目,高级编程

来源:百度知道 编辑:UC知道 时间:2024/06/04 19:35:18
哪位高手帮小弟看看把,高级编程,什么语言都可以,写完保存为文本文档
题目是:括号匹配。假设算术表达式保存在一个字符串变量中,表达式中有三中括号:()、[]、{},它们可以按任意次序嵌套使用,
如(...[...(...{...(...)...}...)...]...),编程判断表达式中括号是否配对出现,若配对正确,则输出OK,否则输出ERROR.表达式由用户交互输入.
拜托了
请你们直接帮我做出来把!!
我是个菜鸟,根本不动什么是”堆栈”

貌似没有什么问题的,且貌似不需要堆栈呵呵,Try...

#include <stdio.h>
#define MAX 200
void main()
{
char str[MAX],*p;
int a=0,b=0,c=0;
printf("Input String:");
scanf("%s",str);
printf("\n");
p=str;
while(*p!='\0')
{
if(*p=='(')a++;
if(*p=='[')b++;
if(*p=='{')c++;
if(*p==')')a--;
if(*p==']')b--;
if(*p=='}')c--;
p++;
}
if(0==a&&0==b&&0==c)
printf("The string is OK\n");
else
printf("The string is ERROR\n");

}

只解决配对,不解决顺序呵呵,顺序也要考虑的话,...用栈吧~

我来回答
这个很简单。就是一个算术四则运算的题。你可以到处找到这个样的算法。

用一个堆栈,然后再做一个判定表,根据下个字符决定是压入栈还是弹出运算。

至于括号的问题,把所有的括号都当成圆括号就成了。

提示:首先你要确定输入了多少符号,如果单数则错,双