C语言中nan的使用

Posted 宣之于口

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中nan的使用相关的知识,希望对你有一定的参考价值。


C语言中nan的使用


含义:表示 not a number

产生:对浮点数产生了未定义的操作

    1.对负数开方,对负数求对数,0.0/0.0,0.0*inf、inf/inf、inf-inf这些操作都会得到nan。(0/0会产生操作异常;0.0/0.0不会产生操作异常,而是会得到nan);

    2.在GNU中,使用宏:float NAN对浮点数赋值;

注意:

    1.如果表达式中含有nan,那么表达式的结果为nan;
    2.得到nan时就查看是否有非法操作

说明:今天遇到一道结果是输出一个浮点数的题目,看到一个学长直接printf(“nan\\n”);就A了,感觉很神奇,所以了解了一下。

能被水过去是可能是因为题目比较水,spj判断的时候写成if(fabs(out-ans) > eps) return WA;因为fabs(out-ans) > eps,这个如果out是nan的话会反回假的,写成if(fabs(out-ans) < eps)return AC;就不能被水过去了。

感觉好神奇,又涨姿势了。

以上是关于C语言中nan的使用的主要内容,如果未能解决你的问题,请参考以下文章

C++ 问题我每次运行程序时都会得到“nan”作为输出

[记] C语言中的nan和inf

在没有numpy的python中分配一个变量NaN

C语言 inf和nan

C语言 inf和nan

为啥要学习C语言