使用 C 计算 e^1

calculating e^1 using C

我正在尝试使用 C 编程(输入容差级别)计算 e^1 这可行,但由于某种原因我得到了这样的错误输出:

exp 到 0.000100 容错度:2.000000

exp 到 0.000000 误差容限:2.000000

exp 到 0.000000 误差容限:2.000000

exp 到 0.000000 误差容限:2.000000

有什么想法吗?

#include <stdio.h>
#include <stdlib.h>
//this function creates factorial of n 
int myfac(n)
{
if (n <= 1) return 1;
return n*myfac(n - 1);
}
void myexp(float error)
{
int n = 0;
float value = 0;
//n, n being used for recursion
//error, user input error for tolerance
//value, exp being returned as an answer
//nextvalue, value at n+1
while(1/myfac(n) >= error)
{
    value = value + 1 / myfac(n);
    n = n + 1;
}
printf("The exp to %f error tolerance: %f \n", error, value);
}
void main()
{
    myexp(0.0001);
    myexp(0.0000001);
    myexp(0.0000000001);
    myexp(0.0000000000001);


}

1/myfac(n)中,小数两边都是整数。如果 n 大于 1,结果将向下舍入为零。

试试 1./myfac(n),用小数点表示 double 数字类型。