C语言:函数递归应用,不知道哪里错误

2024-12-01 05:28:52
推荐回答(3个)
回答1:

#include

float abc(int);

int main()
{
float z;
int x;
printf("请输入阶乘数\n");
scanf("%d",&x);
z=abc(x);
printf ("%f",z);
return 0;
}

float abc(int n)
{
float y;
if (n==0||n==1)
y=1.0;
else y=abc(n-1)*n;
return (y);
}

错得好多,递归也没有没有返回条件
另外用float精度很低,算到20就有截取误差了

回答2:

注意 float abc(int x);声明,放到main外面。
修改如下。再rebuild重现完全编译一下。

#include

float abc(int x);
int main()
{
float z;
prtinf("请输入阶乘数");
scanf("%d",&x);
z=abc(x);
pritf ("%f",&z);
return 0;
}
float abc(int n);
{
float y;
if (y==0||y==1)
printf ("error");
else y=abc(n-1)*n;
return (y);
}

回答3:

好多错误,怎么只有一个

1、float abc(int x)函数声明应该放到main函数外面

2、printf拼写错误
3、pritf ("%f",&z);应该写成printf("%f",z);