Вопрос
Функция rand() иногда возвращает значение +NAN/-NAN, после чего некоторые мат. функции просто «загибаются». Почему это происходит и как от этого избавиться, или проверить возвращенное rand() значение до того как оно будет использовано при расчетах?
Ответ
Не знаю почему это возникает в C и как может от rand()'а вернуться нечисловой формат не понимаю, но функция с проверкой очевидна:
int nrand( void )
{
int n;
while( _isnan(n=rand()) )
;
return n;
}
// _isnan — из float.h
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация