堆栈函数应该返回指定的元素,而不是返回垃圾值
Stack function supposed to return a specified element, instead returns garbage value
int getElement(stack<int> s,int i){
if(i>1){
s.pop();
getElement(s,i-1);
}
else
return s.top();
}
int main(){
stack<int> pancakes;
pancakes.push(1);
pancakes.push(2);
pancakes.push(3);
printf("%d",getElement(pancakes,2));
}
帮助!我的getElement函数返回i处的元素,其中i从堆栈的顶部值开始,值为1。
当我运行getElement(2)时,它应该在堆栈上返回2:3 -索引1,2 -索引2和1 -索引3
打印垃圾值。假设它只接受可接受的值(索引在边界内),错误处理将在稍后进行。
您缺少一个return
语句。
int getElement(stack<int> s,int i){
if(i!=1){
s.pop();
getElement(s,i-1);
}
else
return s.top();
}
int getElement(stack<int> s,int i){
if(i!=1){
s.pop();
return getElement(s,i-1); // The line with the missing return.
}
else
return s.top();
}
相关文章:
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 接收和返回函数指针的函数指针的类型?
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- C++函数链返回函数
- 返回函数指针的函数的签名
- 由于值返回函数中的错误,程序无法编译.它说未声明的标识符
- 非常量引用返回函数在常量值返回函数上用作 r 值
- 如何在 C++ 中从 void 返回函数访问变量
- 返回函数中带有 2 个可选 ctor 的对象
- 如何在 c++ 中返回函数的结构向量
- 返回 C++ 函数中的引用
- 使用向量时,当返回函数更改时,无法看到输出
- 如何在递归中使用返回函数
- 返回函数模板的类型C++作为第二个模板参数
- 为什么静态指针返回函数中有一个"静态"键?
- 递归返回函数,在特殊情况下不返回
- 从类返回函数
- 从类成员函数返回函数指针
- 从返回函数中推断不存在的模板参数