如何在 CPP 中控制递归
how to control recursion in cpp
嗨,我正在使用 cpp 构建一个项目,因为我大量使用递归,但我无法获得
void user1() {
avg=average(totall, dice);
if(avg>=3){
totallSum+=totall;
// cout<<name1<<" is safe! "<<name1<<"'s turn is score now "<<totallSum<<endl;
if(totallSum<point){
cout<<name1<<" is safe! "<<name1<<"'s turn is score now "<<totallSum<<endl;
}
else {
user1totall+=totallSum;
break;
}
}
else{
totallSum=0;
user2(name1, name2,point,5,0,user1totall,user2totall,++turn2);
}
user2(name1, name2,point,dice,totallSum,user1totall,user2totall,++turn2);
}
这是我编写的代码的小片段 这里的问题是,在调用user2
函数的 else 块中,它工作完全正常,但是当它完全执行时,它不会退出这个user1
函数,而是再次调用倒数第二行的user2
函数 任何人都可以告诉如何解决此问题
这是因为内存存储在堆栈中(后进先出)。 当它第一次调用user2
函数时,由于堆栈内存,程序将首先完成其执行 在它执行完user2
函数后,它将再次回到user1
并移动到下一个再次调用user2
的位置。
要解决此错误user1
将返回类型从void
更改为int
当你调用user2
函数时 在该行之后添加return 0;
它将完全正常工作
相关文章:
- 通过递归进行因子分解
- 递归函数计算序列中的平方和(并输出过程)
- 使用递归的数组的最小值.这是怎么回事
- 递归列出所有目录中的C++与Python与Ruby的性能
- 递归计数给定目录的文件和所有目录
- 如何在BST的这个简单递归实现中消除警告
- C++:正在检查LinkedList中的回文-递归方法-错误
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 递归无序映射
- TSP递归解的迭代形式
- 如何在Elixir中调用递归函数并行
- 返回递归调用和仅递归调用的区别
- 数组元素打印的递归方法
- 使用递归时获取变量的奇怪值
- 如何在C++中递归地按相反顺序打印集合
- 到连接组件算法的问题(递归)
- 如何使用递归打印修改后的星号三角形图案
- 使用递归模板动态分配的多维数组
- 递归函数有效,但无法记忆
- 递归功能,以打印每个新位置以进行控制