这个问题需要理解变量转换
k是一个float变量
但是k = 1 / i 这个语句中, 1与i均为int , 相除结果还是整数(结果为浮点数结果靠近0的方向取整),那么即使用k接受也没有用,因为整个式子右边得到的是一个整数 , 此时只需要把1改成1.0 ,那么1.0是一个double值, 会自动把整个式子内所有低于double 的变量提升为double 那么i也暂时转换成为一个double 整个式子计算得到一个double 最好令k为一个double值, 精度比float要高 double 的读入使用 %lf 在Codeblock的G++编译器中使用 %f输出
k=1/i 这里改为 k=1.0/i 就可以了,不过答案貌似不是2
改成k=1.0/(i*1.0);