当我运行我构建的程序时,我会定期得到无关的结果。我得到的不是打印 float ,而是:-1.#IO
。这个结果说明了什么?除以零?
根据我的经验,如果结果是溢出,那么它应该仍能正确打印,只是一个不正确的值(可能是一些大的负值)。
这是我大部分时间得到的:
这是每 6-7 次运行会发生的情况。
如果我使用常量种子运行程序(假设该种子产生正确的结果),那么一切都会无限期地正常运行。但是,如果我使用随机种子运行,比如 time(0),我往往会看到这个程序在运行时爆炸。
简而言之,有没有人经历过这个结果?只是寻找一个起点来深入研究代码。
最佳答案
在 Windows 上,无穷大打印为 1.#INF
。标准库中的一个怪癖意味着将其四舍五入到小数点后三位得到 1.#IO
('F' >= '5',因此它会增加 'N')。
同理,-1.#IO
是负无穷大。
是的,您可以通过除以零得到这个结果。
关于c - printf 的这个结果说明了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22005257/