[С++] У меня есть проблема с кодом C++
я думаю, что проблема в паре [bool]
но я никак не мог ее решить
пожалуйста, помогите мне
[^]
#include<iostream> #include<string> using namespace std; struct stack{ int arr[100]; int top=-1; void push(int val){ if(top==99)return; top++; arr[top]=val; } void pool(){ if(is_empty())return; top--; } int top_val(){ if(is_empty())return -1; return arr[top]; } bool is_empty(){ if(top==-1)return true; else return false; } }; bool pair(char open,char close){ if(open=='('&&close==')') return true; else if(open=='['&&close==']') return true; else if(open=='{'&&close=='}') return true; return false; } bool balance(string exp){ stack bracket; for(int i=1;i<=exp.length();i++){ if(exp=='('||exp=='['||exp=='{'){ bracket.push(exp); } else if (exp==')'||exp==']'||exp=='}'){ if(bracket.is_empty())return false; else if(pair(bracket.top_val(),exp)==false) return false; bracket.pool(); } if(bracket.is_empty())return true ; else return false; } } int main(){ string s; cin>>s; if(balance(s))cout<<"the brackets is balance \n"; else cout<<"the brackets isn't balance"; }
Что я уже пробовал:
я думаю, что проблема в паре [bool]
но я никак не мог ее решить
пожалуйста, помогите мне
Leo Chapiro
Попробуйте отладить исходный код и локализовать, где находится ошибка