СообЧа > База Знаний > Программирование > C, С++

Вопрос

Функция 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 Сообщество Чайников
Контактная информация