C printf的结果表明了什么?

C printf的结果表明了什么?,c,printf,C,Printf,当我运行我构建的程序时,我会定期得到无关的结果。我得到的不是打印浮点,而是:-1.#IO。这个结果表明了什么?A除以零 根据我的经验,如果结果是溢出,那么它仍然应该正确打印,只是一个不正确的值(可能是一些较大的负数) 以下是我大部分时间得到的: 以下是每6-7次跑步的情况 如果我使用一个常量seed运行程序(假设seed产生正确的结果),那么一切都会无限期地正常工作。然而,如果我使用一个随机种子运行,比如时间(0),我倾向于看到这个程序在运行时爆炸 简言之,以前有人经历过这个结果吗?只是寻找

当我运行我构建的程序时,我会定期得到无关的结果。我得到的不是打印浮点,而是:
-1.#IO
。这个结果表明了什么?A除以零

根据我的经验,如果结果是溢出,那么它仍然应该正确打印,只是一个不正确的值(可能是一些较大的负数)

以下是我大部分时间得到的:

以下是每6-7次跑步的情况

如果我使用一个常量seed运行程序(假设seed产生正确的结果),那么一切都会无限期地正常工作。然而,如果我使用一个随机种子运行,比如时间(0),我倾向于看到这个程序在运行时爆炸


简言之,以前有人经历过这个结果吗?只是寻找一个切入代码的起点

在Windows上,无穷大打印为
1.#INF
。标准库中的一个怪癖意味着将其四舍五入到小数点后三位得到
1.#IO
('F'>='5',因此它增加了'N')

出于同样的原因,
-1.#IO
是负无穷大


是的,你可以通过除以零得到这个结果。

在Windows上,无穷大打印为
1。#INF
。标准库中的一个怪癖意味着将其四舍五入到小数点后三位得到
1.#IO
('F'>='5',因此它增加了'N')

出于同样的原因,
-1.#IO
是负无穷大


是的,你可以通过除以零得到这个结果。

在Windows上,无穷大打印为
1。#INF
。标准库中的一个怪癖意味着将其四舍五入到小数点后三位得到
1.#IO
('F'>='5',因此它增加了'N')

出于同样的原因,
-1.#IO
是负无穷大


是的,你可以通过除以零得到这个结果。

在Windows上,无穷大打印为
1。#INF
。标准库中的一个怪癖意味着将其四舍五入到小数点后三位得到
1.#IO
('F'>='5',因此它增加了'N')

出于同样的原因,
-1.#IO
是负无穷大



是的,你可以通过除以零得到这个结果。

你使用的是哪种编译器/libc?实际上,我没有想到这一点。我正在使用Visual Studio 2012附带的C89编译器。我开始在IDE中编写C程序,并被告知它不支持C99编译器。也许这就是问题所在。我使用的唯一库是ANSIC库(如stdio、stlid、time、math等),使用C99编译器运行良好。我甚至不敢问是什么原因导致了使用C89编译器。它可能是任何东西。您使用的格式字符串是什么?看起来某些固定十进制格式可能不符合固定字符限制。您获得此特殊输出可能是因为您的编译器/libc想通知您发生了错误,而此特定输出可能取决于您使用的特定编译器/libc。您使用的是哪种编译器/libc?实际上,我没有想到这一点。我正在使用Visual Studio 2012附带的C89编译器。我开始在IDE中编写C程序,并被告知它不支持C99编译器。也许这就是问题所在。我使用的唯一库是ANSIC库(如stdio、stlid、time、math等),使用C99编译器运行良好。我甚至不敢问是什么原因导致了使用C89编译器。它可能是任何东西。您使用的格式字符串是什么?看起来某些固定十进制格式可能不符合固定字符限制。您获得此特殊输出可能是因为您的编译器/libc想通知您发生了错误,而此特定输出可能取决于您使用的特定编译器/libc。您使用的是哪种编译器/libc?实际上,我没有想到这一点。我正在使用Visual Studio 2012附带的C89编译器。我开始在IDE中编写C程序,并被告知它不支持C99编译器。也许这就是问题所在。我使用的唯一库是ANSIC库(如stdio、stlid、time、math等),使用C99编译器运行良好。我甚至不敢问是什么原因导致了使用C89编译器。它可能是任何东西。您使用的格式字符串是什么?看起来某些固定十进制格式可能不符合固定字符限制。您获得此特殊输出可能是因为您的编译器/libc想通知您发生了错误,而此特定输出可能取决于您使用的特定编译器/libc。您使用的是哪种编译器/libc?实际上,我没有想到这一点。我正在使用Visual Studio 2012附带的C89编译器。我开始在IDE中编写C程序,并被告知它不支持C99编译器。也许这就是问题所在。我使用的唯一库是ANSIC库(如stdio、stlid、time、math等),使用C99编译器运行良好。我甚至不敢问是什么原因导致了使用C89编译器。它可能是任何东西。您使用的格式字符串是什么?看起来某些固定十进制格式可能不符合固定字符限制。您获得此特殊输出可能是因为您的编译器/libc想通知您发生了错误,而此特定输出可能取决于您使用的特定编译器/libc。或者,另一种可能是
-1.IND
用于
0/0
之类的值。或者,另一种可能是
-1.IND
用于
0/0
之类的值。或者,另一种可能是
-1.IND
用于
0/0
之类的值。