#include<iostream>
using namespace std;
class stack
{
int size=10;
int stack[size]={0}, value=0, top;
top=size;
public:
void push(int v)
{
if(top==0)
cout<<"\nstack is full\n";
else
{--top;
stack[top]=v;}
}
void pop()
{
if(top==size)
cout<<"\nstack is empty\n";
else
{top++;
stack[top];
stack[top-1]=0;
}
}
void display()
{
if(top==size)
cout<<"\nstack empty\n";
else
{
for(int i=top;i<size-1;i++)
{
cout<<stack[i];
}
}
}
};
int main()
{
stack s;
char t;
int value,ch;
do
{
cout<<"\n1.push\n";
cout<<"\n2.pop\n";
cout<<"\n3.display\n";
cout<<"enter choice:\n";
cin>>ch;
switch(ch)
{
case 1:cout<<"\nenter the value to be pushed\n";
cin>>value;
s.push(value);
break;
case 2:s.pop();
break;
case 3:s.display();
break;
default:
cout<<"\nwrong choice\n";
}
cout<<"\ndo u want to retry\n";
cin>>t;
}while(t=='y' || t=='Y');
return 0;
}
Q
我无法从此输出
0
A
回答
1
最简单的错误修复方法是将int size=10;
更改为static const int size=10;
。 在此之后,除了stack[top];
为空语句发生警告之外,在for(int i=top;i<size-1;i++)
中的display
循环中存在逻辑错误,它应该是for(int i=top;i<size;i++)
或for(int i=top;i<=size-1;i++)
。
0
正如TomášZahradníček回答的那样,您需要修复一些东西来编译代码(使用-std = C++ 11)。
我在display
方法中使用for(int i=top; i<size; ++i)
。我还补充说,你的pop
方法可以简单地做top++;
而不覆盖堆栈。无论如何,关于你在cout上没有打印任何东西的问题:你显然尝试了1个物品被推入堆栈,但没有与2,这将指出错误的行(for
循环)。
相关问题
- 1. 我无法从XML输入
- 2. 此输入文本框无法打印输出
- 3. 无法输出我的整个文件
- 4. 我无法注销输出C程序
- 5. 无法从iBATIS.NET获得日志输出
- 6. 无法从LogStash创建csv输出
- 7. 无法从函数获得输出
- 8. 无法从get-filehash获取输出
- 9. 无法从XMLHttpRequest获取JSON输出
- 10. 我无法从阵列输出中删除空值
- 11. 似乎无法从我的课上得到输出
- 12. 我无法输入输入
- 13. 我将如何获得此输出?
- 14. XSLT:我如何获得此输出?
- 15. 为什么我使用java TreeSet Compare方法获取此输出?
- 16. 无法理解输出
- 17. 无法看到输出
- 18. 无法获得json_decode()输出
- 19. 无法理解Malloc输出
- 20. NRPE:无法读取输出
- 21. 无法获得输出
- 22. 无法打印输出
- 23. HtmlWebpackPlugin无法正常输出
- 24. 无法格式化输出
- 25. 无法打开输出流
- 26. 无法理解python输出
- 27. 无法打印从我的方法输出,本地跳转错误
- 28. 无法从源输入生成相同的输出图像
- 29. 无法从“出T”转换成“输出分量”
- 30. 我无法得到jQuery的输出..!请帮帮我..!
请澄清你的问题。 –
你能指定你给程序的输入和你期望的输出吗? – CiaPan
实际上发生了错误 –