gpt4 book ai didi

c++ - 堆栈输出错误

转载 作者:行者123 更新时间:2023-11-27 23:36:51 27 4
gpt4 key购买 nike

输出为:100 100
应该是:9 100
调用了两次push,调用print的时候输出错误。

int main(){
int i=9;
Stackc s;
s.push(i);
i=100;
s.push(i);
s.print();
return 0;
}

这是.h文件

class Stackc{
int arr[100];
int iTop;
public:
int top();
void push(int i);
void pop();
void print();
Stackc();
};

这是构造函数

Stackc::Stackc(){
iTop=-1;
for(int i=0;i<100;i++)
arr[i]=0;
}

这个函数将一个元素压入栈中

void Stackc::push(int i){
iTop++;
arr[iTop]=i;
}

这是为了打印堆栈

void Stackc::print(){
for(int i=0;i<=iTop;i++)
cout<<arr[iTop]<<" ";
cout<<endl;

}

最佳答案

这一行:

cout << arr[iTop] << " ";

应该是

cout << arr[i] << " ";

对于 future ,我建议您查看 How to create a Minimal, Reproducible Example .例如,一个最小的例子不需要跨多个文件(除非问题是关于如何处理多个文件)。理想情况下,只需复制/粘贴一段代码即可运行代码,如下所示:

class Stackc {
int arr[100];
int iTop;
public:
Stackc() {
iTop = -1;
for (int i = 0; i < 100; i++)
arr[i] = 0;
}

void push(int i) {
iTop++;
arr[iTop] = i;
}

void print() {
for (int i = 0; i <= iTop; i++)
std::cout << arr[i] << " ";
std::cout << std::endl;

}

};

int main() {
int i = 9;
Stackc s;
s.push(i);
i = 100;
s.push(i);
s.print();
return 0;
}

我还推荐以下问答:

Why is "using namespace std;" considered bad practice?

关于c++ - 堆栈输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58588021/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com