#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. FREAD錯誤 - 分段故障
- 3. FFMPEG -i filename.mp4顯示 「分段故障(核心轉儲)」 錯誤
- 4. 分段故障在C++代碼無法找到原因
- 5. 如何解決「分段故障」錯誤?
- 6. C++矢量分配錯誤,段故障
- 7. 分段錯誤(故障核心轉儲)
- 8. 分段故障運行時錯誤
- 9. 無法查明分段故障
- 10. 分段故障
- 11. 分段故障
- 12. 分段故障
- 13. 分段故障
- 14. 分段故障
- 15. 分段故障
- 16. 分段故障
- 17. 分段故障
- 18. 分段故障
- 19. 分段故障
- 20. 分段故障
- 21. 分段故障
- 22. 分段故障
- 23. 分段故障
- 24. 分段故障
- 25. 分段故障
- 26. 分段故障
- 27. 分段故障++
- 28. 分段故障
- 29. 分段故障
- 30. 分段故障
隱式`int`?一種方法返回兩個? – 2011-01-09 10:20:59