#include <stdio.h>
int fun (int x)
{
if (x<1)
return(1);
else
printf("%d %d \n", x, fun(x-1));
}
int main()
{ int x,y;
x = 5;
y = fun(x);
printf("\n x = %d f(x) = %d \n", x, y);
return 0;
}
Эта программа содержит рекурсивную функцию, которая подсчитывает некоторые числа. В выходе есть что-то, чего я не понимаю. Существует скриншот вывода по следующей ссылке:Пожалуйста, помогите мне с этой рекурсивной функцией?
Почему правая колонка (красный circuled) является, как показана? Я думал, что этот столбец будет все вместо этого.
Это чисто случайное, это неопределенное поведение. – 2501
@ 2501 Это неопределенное, но не случайное совпадение. – hvd
@ 2501 О да. Я просто заметил, что это случилось с выходом 5 символов, а возвращаемое значение printf равно 5 ...... Может быть, между ними есть какие-то отношения? На самом деле я не знал четко ... –