我用Codeblocks写的这个代码运行结果哪有明显问题,求帮忙!

2025-04-04 17:35:45
推荐回答(3个)
回答1:

这个问题需要理解变量转换
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输出

回答2:

k=1/i 这里改为 k=1.0/i 就可以了,不过答案貌似不是2

回答3:

改成k=1.0/(i*1.0);