提问者:小点点

eror:控件到达非void函数的结尾[-werror=return-type]在C++中出错


我需要帮助解决这个问题。我正在得到错误,这是给了下面和代码也给出。 这个程序是要找出支架是否平衡。

#include <bits/stdc++.h>
#include<stack>
using namespace std;

// Complete the isBalanced function below.
string isBalanced(string s) {
    stack <char> st;
    for(auto c:s){
        switch (c){
            case '(':
            case '{':
            case '[':
                  st.push(c);
                   break;
            case '}':
                if(st.empty() || st.top()!='{' )
                    return "NO";
                st.pop();
                break;
            case ']':
                if(st.empty() || st.top()!='[')
                    return "NO";
                st.pop();
                break;
            case ')':
                if(st.empty() || st.top()!='(')
                    return "NO";
                st.pop();
                break;
            default: break;
        }
    }

}

int main()
{
    ofstream fout(getenv("OUTPUT_PATH"));
    
    int t;
    cin >> t;
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    
    for (int t_itr = 0; t_itr < t; t_itr++) {
        string s;
        getline(cin, s);
        
        string result = isBalanced(s);
        
        fout << result << "\n";
    }
    
    fout.close();
    
return 0;
}




this is a program to check bracket is balanced or not.

这是我写的代码,它给我的错误。请帮助我解决这个问题。 我已经尝试添加堆栈头文件,但我仍然得到同样的错误。

***Solution.cpp: In function ‘std::__cxx11::string isBalanced(std::__cxx11::string)’:
 Solution.cpp:7:18: error: control reaches end of non-void function [-Werror=return-type]
    stack <char> st;
              ^~
 cc1plus: some warnings being treated as errors***

共1个答案

匿名用户

for循环完成而不在其中执行return语句时,将不会在isbalanced函数中执行return语句。

似乎您应该添加代码来检查堆栈st是否为空,并根据循环后的结果返回正确的内容。

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(eror|控件|到达|非|void|函数|结尾|werror|return-type|c++|中|出错)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?