在main函数中实现从键盘上输入一算术表达式检验该算术表达式中的小括号是否配对。匹配规则如下:(1)配对的算术表达式中左右括号的数目应相等。(2)正确的算术表达式中每一个左括号都
时间: 2023-04-21 07:00:43 浏览: 122
括号的匹配(c语言数据结构).pdf
应该有一个相应的右括号与之匹配。如果左右括号不匹配,则表达式不正确。
实现思路:
1. 从键盘上输入一个算术表达式,存储到一个字符串中。
2. 遍历字符串中的每一个字符,如果是左括号,则将其压入栈中;如果是右括号,则弹出栈顶元素,判断是否与当前右括号匹配。如果不匹配,则表达式不正确。
3. 遍历完整个字符串后,如果栈为空,则表达式中的所有括号都配对;否则,表达式不正确。
代码实现:
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
string expression;
stack<char> s;
cout << "请输入一个算术表达式:" << endl;
getline(cin, expression);
for (int i = ; i < expression.length(); i++)
{
if (expression[i] == '(')
{
s.push(expression[i]);
}
else if (expression[i] == ')')
{
if (s.empty() || s.top() != '(')
{
cout << "表达式不正确!" << endl;
return ;
}
else
{
s.pop();
}
}
}
if (s.empty())
{
cout << "表达式中的所有括号都配对!" << endl;
}
else
{
cout << "表达式不正确!" << endl;
}
return ;
}
阅读全文