我正在尝试使用一个循环来近似 C 中的欧拉数,该循环在 e 的两个连续值之间的差异小于 0.0000001 时终止。我得到的值是 2.99.. 我尝试设置它,以便在每次迭代时,将 e 与自身的前一个值(保存在 e1 中)进行比较,如果差异大于 0.0000001,它将添加另一个术语 1/( n!)。有什么问题?我是编程新手,因此感谢任何建议/批评。
#include <stdio.h>
int main()
{
float e1 = 0, e2 = 1;
int n = 1, nfact;
while ((e2 - e1) > 0.0000001)
{
e1 = e2;
nfact = 1;
for (int count = 1; count < n; count++)
{
nfact = n * count;
}
n = n + 1;
e2 = e1 + (1.0 / nfact);
}
printf("Approximated value of e = %f", e2);
return 0;
}