-2 c math combinations
我计算 n 阶乘的函数不起作用。没有打印语句被执行,即使它们测试了所有可能的 n 值。
我究竟做错了什么?
long int factorial(int n) //function to find factorial
{
int i=1;
long int p=1;
if(n=0)
{
printf("1");
}
if(n>0)
{
for(i=1;i<=n;i++)
{
p *=i;
}
printf("%ld",p);
}
if(n<0)
{
printf("Error");
}
}
Run Code Online (Sandbox Code Playgroud)
我也尝试做
p = p*i; //instead of p *=i;
Run Code Online (Sandbox Code Playgroud)
这似乎也不起作用。我无法指出我的错误在哪里。
在第 5 行中,您用 0 覆盖了请求的 n 值。
然后计算为零(假),接下来的两个条件也被渲染为假,所以没有打印。
使用if (n==0)来代替。
作为附加说明:您的函数被声明为返回一个 long int,但您实际上并未明确返回任何内容。