C++基础程序题:根据公式 e=1+1⼀1! + 1⼀2! +1⼀3! +…..,求e的近似值。精度要求为10-6 请问为什么总是1。

如题,如图
2024-11-04 17:23:46
推荐回答(3个)
回答1:

不能声明m为整形,在计算的时候数据都是整形!只能这样:
#include
#include
#include
using namespace std;
int main()
{
float sum=0.0,s=1.0;
float m=1.0;
while(fabs(s)>=1e-6)
{
s*=1/m;
m++;
sum+=s;
}
cout< return 0;
}

回答2:

s* = 1.0/m 要不就是整数运算了结果是0

回答3:

s*=1/m改为s*=1.0/m