C语言中带指针的递归

C语言中带指针的递归,c,function,pointers,recursion,C,Function,Pointers,Recursion,如果你想手工处理,你应该在一张纸上画一个堆栈,在每次递归调用之前推送x,y,z,w的值,最后弹出它们。由于我们在过程中有一个递归调用,我认为这很容易做到。手工得到的结果是什么?这是一个写得非常糟糕的递归,很难理解。它除了迷惑人之外还有别的目的吗?我用手拿着1 4 1 2 \4 2 6 \9 4 5 14。在那之后,我不知道如何继续。这是一个考试中的练习。你可以使用你的调试器来查看你的代码正在做什么。。。 #include <stdio.h> int x=2,y=4,z

如果你想手工处理,你应该在一张纸上画一个堆栈,在每次递归调用之前推送x,y,z,w的值,最后弹出它们。由于我们在过程中有一个递归调用,我认为这很容易做到。

手工得到的结果是什么?这是一个写得非常糟糕的递归,很难理解。它除了迷惑人之外还有别的目的吗?我用手拿着1 4 1 2 \4 2 6 \9 4 5 14。在那之后,我不知道如何继续。这是一个考试中的练习。你可以使用你的调试器来查看你的代码正在做什么。。。
    #include <stdio.h>
    int x=2,y=4,z=17,w=3,count=0;

    void p(int z,int *x){
        *x= 3*z - *x;
        int  w=*x+z;
        printf("%d %d %d %d \n",*x,y,z,w);
        if(*x<=y){
           p(*x+1,&w);         
           printf("%d %d %d %d \n",*x,y,z,w);
        }
     }                          


   int main(void){

       p(1,&x);
       printf("%d %d %d %d \n",x,y,z,w);
       return 0;
    }
1 4 1 2 
4 4 2 6 
9 4 5 14 
4 4 2 9 
1 4 1 4 
1 4 17 3