zz_c_04-1-1-NaN

**(70%)NaN – не число** А что, кстати, получится, если не проверить что дискриминант меньше нуля? Попробуем: code format="c"
 * 1) include 
 * 2) include 

int main(void) {	double x =-2, y, z;	y=sqrt(x); z=2*y+x/2; printf("\n %f %f %f",x,y,z);

return 0; } code результат code -2.000000 -1.#IND00 -1.#IND00 code Мы видим, что никакого сообщения об ошибке не появилось, но в результате вычисления корня возникло "что-то странное" (y), при этом при использовании в выражении оно превращает результат в себя (распространяется по выражению) (z)! Это "странное" означает неопределенный результат, NaN (расшифровывается как not a number – не число). "Распространение по выражению" достаточно логично: если у нас по ходу вычисления получилось "не число", результат смысла не имеет.