我已经为此努力了好几个小时。

我有一个递归函数,如下所示:

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 );


递归调用,但这也不起作用。

最佳答案

尝试这个

void fractal ( turtle_t *t, int x){
  if( x >= 0){
    printf("%d\n", x);
    turtle_walk ( t, 20*x);
    turtle_turn ( t, 25 );
    x -= 2;
    fractal ( t, x );
 }

}

10-07 15:20