是e的精度为0.000001,不是1/n!的精度,
有谁能给我一个完整的程序吗
e+=tmp/=i++ 这一句是什么意思啊
追答tmp=tmp/i;
e=e+tmp;
i++;
的意思。
为什么可以表示成e+=tmp/=i++,好神奇
追答你看一下C的“自反运算符”或者叫复合运算符的内容。+=就是自反运算符之一,意义是将前变量与后变量(或常量或表达式)相加再将结果赋给前者。-=、/=、*=等都是自反运算符,运算意义由前面那个运算符决定,赋值作用由=决定。使用自反运算符不仅书写方便简练,而且生成的代码也比分立书写的效率高,当然功能是一样的。for(e=tmp=i=1;tmp>1.0e-6;e+=tmp/=i++);分开写就是这样:
for(e=tmp=i=1;tmp>1.0e-6;i++){
tmp=tmp/i;
e=e+tmp;
}