含義:表示 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和inf使用
本文總結nan和inf在c語言當中的含義 產生和判定方法。表示not a number,等同於 ind indeterminate windows 對浮點數進行了未定義的操作 對負數開方,對負數求對數,0.0 0.0,0.0 inf inf inf inf inf這些操作都會得到nan。0 0會產生...
c語言中的inf和nan
計算calcdistancetohead的距離時,發現有輸出 nan的列印。跟蹤列印資料後,發現有sqrt資料異常的嫌疑。首先,解釋一下它們的意思 inf表示 無窮大 是infinite的縮寫。nan表示 無效數字 是not a number的縮寫。其次,這兩個是值會在浮點運算結果未定義或者無法表示...
C語言中的CONST使用
c中的const使用 const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的安全性和可靠性。const的使用是c語言中乙個比較微妙的地方,請看下面幾個問題。問題 const變數 和 常量 為什麼下面的例子在使用乙個const變數來初始化陣列,ansi c...