e=1+1/1!+1/2!.........
误差表示:fabs(sum-exp(1))
#include<stdio.h>
#include<math.h>
int main()
{
int i;
double sum = 1.0, m = 1;
for (i = 1; ; i++)
{
m *= i;
sum += (1.0 / m);
if (fabs(sum - exp(1)) < 1e-6) break;
}
printf("%.6lf", sum);
return 0;
}
第二种
#include<stdio.h>
#include<math.h>
int function1(int n)
{
int i = 1;
int m = 1;
for (i = 1; i <= n; i++)
{
m = m * i;
}
return m;
}
int main()
{
int i = 1;
double sum = 1.0, m = 1;
while(fabs(sum - exp(1))>=1e-6)
{
sum += (1.0 / function1(i));
i++;
}
printf("%.6lf", sum);
return 0;
}