错误又来了。。。
/*课后习题1.8-h
h. 假设表达式中允许包含3中括号:圆括号、方括号和大括号。
设计一个算法采用顺序栈判断表达式中的括号是否正确配对。
void Bracketmatch(const char* c)
*/
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
class stack {
private:
int maxsize;
int top;
char* st;
public:
stack(int size)
{
maxsize = size;
top = -1;
st = new char[maxsize];
}
void push(char item)
{
st[++top] = item;
}
char top1()
{
return st[top];
}
void pop()
{
top--;
}
bool empty()
{
return top == -1;
}
};
/*
TODO:计一个算法采用顺序栈判断表达式c中的括号是否正确配对。
输出:1. 遍历表达式c过程中,匹配错误 cout << c[i] << " 匹配错误" << endl;
2. 遍历之后,栈为空,则匹配正确,cout << "匹配正确!" << endl;
若不为空,则 cout << s1.top1() << " 匹配错误" << endl;
*/
void Bracketmatch(const char* c) //括号匹配
{
bool bj=true;
char t;
stack s1(strlen(c)+1);
for (unsigned int i = 0; i < strlen(c); i++)
{
t = c[i];
switch (t)
{
case '(':
s1.push(t);
break;
case '[':
s1.push(t);
break;
case '{':
s1.push(t);
break;
case ')':
if (s1.top1() == '(')
{
s1.pop();
break;
}
else
{
cout << c[i] << " 匹配错误" << endl;
bj = false;
break;
}
case ']':
if (s1.top1() == '[')
{
s1.pop();
break;
}
else
{
cout << c[1] << " 匹配错误" << endl;
bj = false;
break;
}
case '}':
if (s1.top1() == '{')
{
s1.pop();
break;
}
else
{
cout << c[i] << " 匹配错误" << endl;
bj = false;
break;
}
default:
break;
}
}
if (bj)
{
if (s1.empty())
{
cout << "匹配正确!" << endl;
}
else
cout << s1.top1() << " 匹配错误" << endl;
}
}
int main()
{
string s;
getline(cin, s);
Bracketmatch(s.c_str());
return 0;
}
运行结果不对
这个要求写那个匹配函数,其他地方应该是不让改的
这里是几个用例
用例1:
假设输入为:
{1*[3*2+(2-1)]}
则输出为:
匹配正确!
用例2:
假设输入为:
{}{[]()()()()[]{{{}}}
则输出为:
{ 匹配错误
用例3:
假设输入为:
{1*[3*2+(2-1)}]
则输出为:
} 匹配错误
用例4:
假设输入为:
(1*(3-(3*[3%[4=[t }5}7-}i9]73]24]5-)6)+)6*)5%{6*{3^{2!!(
则输出为:
} 匹配错误
用例5:
假设输入为:
) ] } { ] (
则输出为:
) 匹配错误
...全文
相关推荐
win10共享打印机提示连接错误0x0000011b。。。
1、确保:控制面板\所有控制面板项\网络和共享中心\高级共享设置中共享都是启用的2、下载本文件后双击执行,执行完成后重启电脑即可
mac上vsdx结尾文件打开工具。。。上传错误,请不要下载
在Mac操作系统中,由于Microsoft Visio并未提供原生版本,许多用户在处理.vsdx文件时会遇到困扰。.vsdx文件是Visio用于保存图表、流程图和其他矢量图形的标准格式。在这种情况下,一个名为
测试用例方法汇总(等价、边界值、因果图、错误法。。。)
**错误推测法**:这种方法基于测试人员的经验和直觉,预测可能会出错的地方。这通常涉及到对历史数据的分析,了解过去哪些类型的问题最常出现,并据此设计测试用例。5.
verilog 编辑器 sublime!语法高亮、错误检测 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
编辑器
Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持。。。_大强博客-CSDN博客.pdf
- 查看事件查看器中的相关错误日志,获取更详细的错误信息,并根据具体信息采取相应的解决措施。


