编译时出现错误
错误:需要左值作为赋值fac(0)= 1的左操作数;
错误:需要左值作为赋值fac(i)= i * fac(i-1)的左操作数;
#include<stdio.h>
int fac(int i)
{
int j;
fac(0)=1;
fac(i)=i*fac(i-1);
printf("%d",fac(i));
}
int main()
{
int x,y;
printf("enter the number");
scanf("%d",&x);
if(x>=0)
{
fac(x);
}
}
最佳答案
在C语言中,您不会以这种方式返回函数值。相反,你会写类似
if ( i == 1 || i == 0 )
return 1;
return i * fac(i - 1);
问题是
fac(0)
的结果未引用您可以写入的对象;就像尝试为1
分配一个新值-您不能这样做。关于c - 需要左值作为赋值左操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38400138/