e の 2 つの連続する値の差が 0.0000001 未満になると終了するループを使用して、C でオイラー数を概算しようとしています。得られる値は 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;
}