プログラムが関数再帰についてです、プログラム全体の制御C言語の再帰制御
void count(int n)
{
static int d=1;
printf("%d",n);
printf("%d",d);
d++;
if(n>1)
count(n-1);
printf("%d",d);
}
void main()
{
count(3);
}
は私の予想出力は
3122134
オリジナル出力は
312213444
である方法を知っておく必要があります
余分な2つの4がどのように出力されたか説明してください。
このプログラムに関するフロー制御について説明してください。
を呼び出すことを忘れないでください。count(1)をチェックしてcount(2)とcount(3)をチェックした後に戻りますか? – mvs
デバッガを使用して、 、そして再帰呼び出しにステップインします。 –
@mvsこの関数は、nが3,2、および1に等しいときにそれ自身を呼び出し、各呼び出しに対して、最後のステートメントでdを出力します。だから出力の末尾に444を得ます。 –