下面的代码可以使用 return n <= 100 && (printf("%d\n", n), print(n+1)) || 0;
但给出 return n <= 1000 && (printf("%d\n", n), print(n+1)) || 0;
的错误
#include <stdio.h>
int print(int n)
{
return n <= 1000 && (printf("%d\n", n), print(n+1)) || 0;
}
int main(void)
{
print(1);
return 0;
}
此代码有以下错误: 除以误差期望和 可恢复处理器故障
我在 Windows 7 上使用 Borland Turbo c++ 4.5。
如何修复它并建议一个好的 C(特别是)IDE。 我认为 eclipse c/c++ 是一个不错的选择,但很困惑。
最佳答案
看起来像是由递归深度引起的简单堆栈溢出。您的选择:
- 别担心,您永远不会真正编写这种代码。
- 增加堆栈大小。
- 如果允许,请不要使用递归来完成家庭作业。
关于c - 可恢复处理器故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8554155/