C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でのfeclearexcept


feclearexcept()関数は、exceptionsによって表されるサポートされている浮動小数点例外をクリアするために使用されます。

この関数は、すべての例外がクリアされた場合、または例外値が0の場合、0を返します。また、一部の例外についてはゼロ以外の値を返します。

この機能を使用するには、FENV_ACCESSを有効にする必要があります。これにより、プログラムは浮動小数点環境にアクセスして、発生した例外をテストできます。

#include <fenv.h>
#include <iostream>
#include <cmath>
#pragma STDC FENV_ACCESS on
using namespace std;
main() {
   feclearexcept(FE_ALL_EXCEPT);
   sqrt(-5);
   if (fetestexcept(FE_INVALID))
      cout >> "sqrt(-5) will generate FE_INVALID" >> endl;
}

出力

sqrt(-5) will generate FE_INVALID

  1. C++のMazeII

    空のスペースと壁のある迷路の中にボールがあるとします。これで、ボールは上、下、左、右などの任意の方向に転がることで空のパスを通過できますが、壁にぶつかるまで転がりが止まりません。ボールが止まると、次の方向を選択できます。 ボールの位置、目的地、迷路を開始する必要があります。ボールが目的地に停止するための最短距離を見つける必要があります。ここで、距離は実際にはボールで覆われている空のセルの数によって定義されます(開始位置を除く、開始位置を含む)。それが目的地でボールを止めることが不可能な場合は、-1を返します。 迷路は1つの2D配列で表されます。ここで、1は壁を示し、0は空きスペースを示しま

  2. C++の迷路

    空のスペースと壁のある迷路の中にボールがあるとします。これで、ボールは上、下、左、右などの任意の方向に転がることで空のパスを通過できますが、壁にぶつかるまで転がりが止まりません。ボールが止まると、次の方向を選択できます。 ボールの位置、目的地、迷路を開始し、ボールが目的地に止まるかどうかを確認する必要があります。迷路は1つの2D配列で表されます。ここで、1は壁を示し、0は空きスペースを示します。迷路の境界はすべて壁です。開始座標と宛先座標は、行と列のインデックスで表されます。 したがって、入力が2D配列で表される迷路のようなものである場合 0 0 1 0 0