Jen*_*fer 0 c recursion gcc lvalue
所以我编写了这个简单的递归程序,并在使用GCC编译时遇到错误
错误:左值作为赋值的左操作数需要左值
希望这不是什么严肃的事情,任何见解都是值得赞赏的
谢谢!
#include <stdio.h>
int factorial (int);
int main (void)
{
int i = 0;
int a = 0;
printf("Please enter an integer: ");
scanf("%d", &i);
a = factorial (i);
printf("\n\n%d factorial equals: %d \n", i, a);
return 0;
}
int factorial ( int n )
{
if ( n <= 0 )
return 0 ;
else
f(n) = f( n-1) + 2;
}
Run Code Online (Sandbox Code Playgroud)
以下语句无效C:
f(n) = f( n-1) + 2;
Run Code Online (Sandbox Code Playgroud)
(我假设这是你得到错误的那一行;你没有说.)
您可能想尝试以下操作:
return factorial(n-1) + 2;
Run Code Online (Sandbox Code Playgroud)
但这个名称factorial
具有误导性,因为这不是阶乘函数的正确公式.