Функция f1 работать не должна вообще smile.gif
Выгляднть она должна хотя бы так:
Код
bool f1 (double x)
{
    if ((x*1000-(int)(x*1000))==0)
        return true;
    else
        return false;
}

Комментить все - это скучно и долго. Если что-то непонятно, то можете написать сюда более конкретный вопрос smile.gif. А так, например, в том же Страуструпе это все объясняется.