作业帮 > 综合 > 作业

输入一行表达式,判断该表达式中的括号是否匹配.括号要求符合C++表达式的要求.若左括号与右括号匹配,则

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/01 12:50:56
输入一行表达式,判断该表达式中的括号是否匹配.括号要求符合C++表达式的要求.若左括号与右括号匹配,则
输入一行表达式,判断该表达式中的括号是否匹配.括号要求符合C++表达式的要求.若左括号与右括号匹配,则
#include
using namespace std;
#define MAX_SIZE 50
typedef struct
{
int stack[MAX_SIZE];
int top;
}Stack;
int main()
{
Stack st;
st.top=-1;
char ch;
bool flag=false;
while (cin>>ch)
{
switch (ch)
{
case '(':
st.stack[++st.top]=ch;
break;
case ')':
if (st.stack[st.top]=='(')
{
st.top--;
break;
}
else {
cout
再问: 问题本身是这样的:::::谢谢!!! 输入一行表达式,判断该表达式中的括号是否匹配。括号要求符合C++表达式的要求。若左括号与右括号匹配,则输出”correct”; 否则输出“not correct”。 如: (3+(3-2))*5 correct (2+3))*4 not correct )2+3( not correct Input 输入一行表达式。(字符个数不超过100个) Output 若左括号与右括号匹配,则输出”correct”; 否则输出“not correct”。
再答: #include using namespace std; #define MAX_SIZE 50 typedef struct { int stack[MAX_SIZE]; int top; }Stack; int main() { Stack st; st.top=-1; char ch; bool flag=false; while (cin.get(ch)&&ch!='\n') { switch (ch) { case '(': st.stack[++st.top]=ch; break; case ')': if (st.stack[st.top]=='(') { st.top--; break; } else { //cout