Замена NAN на нужный символ

Есть мат.функция, допустим у=1/х на ввод подаем х на вывод у если подать х=0 консоль выдаст nan! как заменить nan на нужный мне символ?

#include <stdio.h>
#include <math.h>

int main(){

    double x,y;
    scanf ("%lf",&x);
    y=1/x;

   //вот тут затык 
if ( y == NAN ){
   //-----/\------
   //------|------
   //------|------
    printf ("%lf",&x);
}
else {
    printf ("%lf",&x);
}

}

Ответы (1 шт):

Автор решения: Qwertiy

Самый простой способ проверки на NaN - сравнить на (не)равенство с собой: tio.run

#include <iostream>

using namespace std;

int main()
{
  double x, y;

  cin >> x >> y;

  double z = x / y;

  if (z != z)
    cout << "It was NaN: " << z << endl;
  else
    cout << z << endl;

  return 0;
}
0 0
It was NaN: -nan

Тем не менее, насколько я помню, оптимизации компилятора по умолчанию не гарантируют корректную работу с NaN - требуется добавить какой-то флаг.

→ Ссылка