C++ C++;使用堆栈的代码
我正在写一个程序,它是一个简单的表达式检查器。程序要做的就是检查用户输入的内容是否格式正确。我有三份文件正在处理。我将在下面发布每个部分。我的问题在案例一的main.cpp中,如果编码正确的话。我对stacks是新手,不确定我是否正确地编码了我想要发生的事情。以防万一,代码将得到一个后跟:的表达式,如果输入是C++ C++;使用堆栈的代码,c++,C++,我正在写一个程序,它是一个简单的表达式检查器。程序要做的就是检查用户输入的内容是否格式正确。我有三份文件正在处理。我将在下面发布每个部分。我的问题在案例一的main.cpp中,如果编码正确的话。我对stacks是新手,不确定我是否正确地编码了我想要发生的事情。以防万一,代码将得到一个后跟:的表达式,如果输入是”(“,则推动堆栈,如果答案是)”,则进入顶部并进行比较,查看它们是否成对。然后输出表达式的格式是否正确。谢谢 代码如下: main.cpp switch (choice){ case 1:
”(“
,则推动堆栈,如果答案是)”
,则进入顶部并进行比较,查看它们是否成对。然后输出表达式的格式是否正确。谢谢
代码如下:
main.cpp
switch (choice){
case 1:
cout << "Current Setting: () " << endl;
cout << "Enter your expression followed by a ; : " << endl;
do {
cin >> answer;
if (answer = '(')
stack.push( '(' );
else
if (answer = ')' )
(stack.top() == '(')
while (answer != ';');
没有。
当你试图将整个表达式与一个字符进行比较时,你正在阅读整个表达式
if (answer = '(')
而且循环什么也不做
while (answer != ';');
表情
if (answer = '(')
分配”(“
回答并检查它是否为非零(即它是非零)——因此始终执行第一个分支
你需要:
if (answer == '(')
相反(另一个也一样)
您还需要在
}
之前关闭,而尝试运行代码并查看是否得到答案。这可能是家庭作业吗?可能添加家庭作业标记比较合适吗?您正在做什么(stack.top()==='(')
,这是一个程序不会以任何方式使用的=
(据我所知),可能会更好地解释这个问题。不清楚您真正想要做什么。提供更多详细信息您可能想查看=
和==
之间的区别。此外,如果允许,您可以使用STL堆栈。这是代码的一部分。我有可以做的{
在while
循环的代码顶部,在while
之前仍然需要一个右括号。
if (answer == '(')