Я сделал простую программу для вычисления факториала числа. Ниже приведен код.
#include <stdio.h>
int factorial(int i);
int main(void)
{
int i;
printf("Factorial of: ");
scanf("%i", &i);
printf("Answer: %i\n", factorial(i));
}
int factorial(int i)
{
if (i == 0)
{
return 1;
}
factorial(i) = (factorial(i - 1) * i);
return factorial(i);
}
компилятор сказал мне, что в следующей строке есть проблемы
factorial(i) = (factorial(i - 1) * i);
поэтому я изменил приведенную выше строку на следующую, и это сработало
int a = (factorial(i - 1) * i);
return a;
Итак, может ли кто-нибудь объяснить мне, почему начальная строка (factorial(i) = (factorial(i - 1) * i);) не сработала?
return factorial(i - 1) * i;
. - person r3mainer   schedule 27.02.2020factorial(i)
возвращает целое число.factorial(i) = thing;
вызоветfactorial(i)
, получит возвращаемое значение и сразу же перезапишет егоthing
. Не имеет особого смысла - person ForceBru   schedule 27.02.2020