e=1+1/1! + 1/2! + ..... +1/n!
要求使用while结构 计算到最后一项的绝对值小于10的-7为止
但我的程序跑出来结果为零
#include
int main(void) {
int i = 0;
double e = 1, x = 1, n = 1.0e7;
while (i <= n) {
x *= i;
e = e + 1.0 / x;
i++;
}
printf("%d", e);
}
这样?
#include <stdio.h>
int main() {
int i = 1;
double e = 1, x = 1, n = 1.0e-7;
while( 1.0/x >= n )
{
x *= i;
e = e + 1.0 / x;
i++;
}
printf("%f",e);
}
e是double型,最后输出要用%lf,不能用%d。%d用于输出整数
而且代码也不对,首先循环条件怎么可能是i<1.0e7呢?其次题目要求最后一项小于10的-7次方,但你的代码是遇到小于10的-7次方就结束了。因此改用do...while更合理
#include <stdio.h>
int main(void) {
int i = 1;
double e = 1, x = 1, n = 1.0e-7;
do
{
x *= i;
e = e + 1.0 / x;
i++;
}while(1.0/x >= n);
printf("%lf", e);
}