#include <stdio.h>
int main()
{
double eps;
double e=1.00,i=1,j,s=1.00;
scanf("%lf",&eps);
for(j=1;j<=i;j++)
{
s=s*j;
if(1.00/s>=eps)
{
e=e+1.00/s;
i++;
}
}
e=e+1.00/s;
printf("%.8lf",e);
return 0;
}
```
这是我编的代码,答案为什么和标准的不一样,如果要和标准的相同,应该如何做呢?
1️⃣将声明定义变量的float改为double
2️⃣将输出时的.8f改为.8lf
希望对题主有所帮助!可以的话,帮忙点个采纳!
e和s定义为double型,不能是float型,精度不够。输出用%.8lf