为什么我没有得到我期望的输出?

时间:2017-12-17 20:02:08

标签: python c

我找到了数字25的近似平方根。

#include <stdio.h>

main() {
  float a = 25.0;
  float b = 0.0;

  while (abs(b*b - a) >= 0.01) {
    b += 0.00001;
  }
  printf("%f\n", b);
}

我希望b在循环后大约为5,有人可以解释为什么它会显示0吗?

当我在Python中编写此代码时,它可以正常工作:

a=25.0
b=0.0

while abs(b*b - a) >= 0.01:
    b+=0.00001

print(b)

1 个答案:

答案 0 :(得分:3)

是的,abs() doesn't do what you think it does(提示:它在integers上运行)。相反,请使用fabsf()https://ideone.com/4HphCr

中的math.h