#include <stdio.h>
void fun(int x)
{
if(x<=20)
{
printf("d\n",x);
return fun(2*x);
return fun(x/2);
}
}
main()
{
int x;
printf("Enter the number\n");
scanf("%d",x);
fun(x);
}
回答
这应该是scanf("%d", &x);
,并且可能printf("%d\n", x);
。
另外,您从void
函数返回一些东西(两次!)。您的代码将无法正常工作。
+1。 GCC编译它。当然,用'墙壁'(正确)抱怨。 – 2011-01-09 10:22:38
@比利,我想这只是降低了返回值。但是,如果它优化了函数调用,因为它的结果从来没有被使用过,那将很有趣。感谢您的信息:) – 2011-01-09 10:24:52
如果您打算打印x的值,它应该是printf(“%d \ n”,x); 你缺少%symbol.also函数中的第二个return语句将永远不会执行。
虽然这是真的,但这不是导致段错误的原因。 – 2011-01-09 10:26:19
除了其他人说的之外,在修复所有其他编程错误之后,您正在将程序指向无限递归。
编写一个函数Compute(int x),使其输出x,2x,4x,8x ...的值。直到数值不超过20000.达到20000后,它再次从...... 8x,4x,2x,x回来并停在那里。 注意:(1)不能在函数中使用任何局部变量 (2)不能使用任何循环(for或while或do..while)或任何GOTO语句。 – Ankur 2011-01-09 10:55:38
#include <stdio.h>
void fun(int x)
{
if(x<=20000)
{
printf("%d\n",x);
fun(x<<1);
printf("%d\n",x);
}
}
main()
{
int x;
printf("Enter the number\n");
scanf("%d",&x);
printf("\n");
fun(x);
system("pause");
}
这是正确的程序,我一直在寻找。谢谢大家!
- 1. 无法执行命令:分段故障:11调试错误
- 2. FFMPEG -i filename.mp4显示 “分段故障(核心转储)” 错误
- 3. 分段错误(故障核心转储)
- 4. 无法查明分段故障
- 5. 分段故障
- 6. 分段故障
- 7. 分段故障
- 8. 分段故障
- 9. 分段故障
- 10. 分段故障
- 11. 分段故障
- 12. 分段故障
- 13. 分段故障
- 14. 分段故障
- 15. 分段故障
- 16. 分段故障
- 17. 分段故障
- 18. 调试编译器故障
- 19. 调试以下功能(段故障错误)
- 20. 无法找出此分段故障的原因
- 21. jonesforth分段故障
- 22. C++:分段故障
- 23. wxListBox - 分段故障
- 24. Codekit分段故障
- 25. libffi分段故障
- 26. libyahoo分段故障
- 27. 收到致命警报:handshake_failure,调试不显示故障原因
- 28. 如何让Eclipse CDT的显示运行时错误(例如,分段故障)
- 29. 由python错误导致的qt-creator调试器故障
- 30. 分段故障试图在gdb
隐式`int`?一种方法返回两个? – 2011-01-09 10:20:59