#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就有截取误差了
注意 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);
}
好多错误,怎么只有一个
1、float abc(int x)函数声明应该放到main函数外面
2、printf拼写错误
3、pritf ("%f",&z);应该写成printf("%f",z);