程序过程执行结果详解

void f( int n, int & m)
if (n<1) return
else
printf((调用f(%d,%d)前,n=%d,m=%d\n",n
1,m-1,n,m);
n--;m-;
f(n-1,m) ;
printf(("调用f(%d,%d)后,n=%d,m=%d\n",n-
1,m-1,n,m);
}
}
void main0
int n=4,m=4;
f( n, m)
}

修改如下,供参考:

#include <stdio.h>
void f(int n, int m)
{
    if (n < 1) return;
                       //else
    printf("(调用f(n=%d,m=%d)前)\n",n,m);
                       //n--; m-;
    f(n-1, m-1);
    printf("(调用f(n=%d,m=%d)后)\n",n,m);
}
int main()
{
    int n=4,m=4;
    f(n, m);
    system("pause");
    return 0;
}

//(调用f(n=4,m=4)前)
//(调用f(n=3,m=3)前)
//(调用f(n=2,m=2)前)
//(调用f(n=1,m=1)前)
//(调用f(n=1,m=1)后)
//(调用f(n=2,m=2)后)
//(调用f(n=3,m=3)后)
//(调用f(n=4,m=4)后)
//请按任意键继续. . .