我一直在掙扎着這個小時。減少價值似乎並沒有在一個時間循環
我有一個遞歸函數,詳情如下:
void fractal (turtle_t *t, int x){
while (x != 0){
printf("%d\n", x);
turtle_walk (t, 20*x);
turtle_turn (t, 25);
x -= 2;
fractal (t, x);
}
}
當我運行此代碼,一切似乎除了x -= 2
工作。我從參數x的值10開始。打印報告給我:
10, 8, 6, 4, 2, 2, 6, 4, 2, 2, etc
我是否錯過了什麼?
我也使用
fractal (t, x-2);
的遞歸調用嘗試,但將不能工作。
編譯所有的警告和調試信息('GCC -Wall -Wextra -g')。然後**使用調試器**('gdb')一步一步地運行程序,查詢變量的值,並瞭解發生了什麼 –
while循環控制遞歸。 – Scholarmate
也許你想'if'而不是'while'?順便說一下,預期的產量是多少? –