Как получить Nan в си

Задача следующая: на си написать арифметическое выражение, содержащее только конечные числа типа double и четыре действия арифметики так, чтобы результат был равен NaN. В выражении не должно быть нулей, включая промежуточные результаты вычисления


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

Автор решения: Stanislav Volodarskiy
#include <stdio.h>

int main() {
    double nan = (1e200 / 1e-200) / (1e200 / 1e-200);
    printf("nan is %lf\n", nan);
    printf("nan == nan is %d\n", nan == nan);
}
$ gcc -O2 -std=c11 -pedantic -Wall -Wextra -Werror -Wwrite-strings -Wconversion temp.c 

$ ./a.out 
nan is -nan
nan == nan is 0
→ Ссылка