#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