Найти значение выражения

Дано задание номер 8:Уравнение

И вот мой код:

//найти значение выражения
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    setlocale(LC_ALL, "RUS");
    float X;
    cout << "x = ";
    cin >> X;
    if (X > 0 && X < 5) cout << "Корень из отрицательного числа\n";
    else if (X <=-2 && X<0) cout << "Логарифм отрицательного числа\n";
    else if (X == -3) cout << "Деление на ноль\n";
    else
    {
        float Y = (sqrt(X - 5 / X * X - 9)) + log((X * X + 2 * X + 1));
        cout << "F = " << Y << endl;

    }
    system("pause");
    return 0;
}

У меня проблема в проверках промежутков,кроме 4 ни одна из цифр ниже из таблицы не проходит. Можете помочь пожалуйста с исправлением промежутков?


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

Автор решения: MBo

Порядок оценивания:

if (X * X == 9)
if ((X - 5) / (X * X - 9)) < 0      (обратите внимание на скобки в знаменателе)
if (X == -1)                    (то же, что и X*X + 2 * X + 1 <= 0)
→ Ссылка
Автор решения: Юрий

В общем спасибо "за помощь" без обид только товарищи программисты. Я написал верную программу:

//найти значение выражения
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    setlocale(LC_ALL, "RUS");
    float X;
    cout << "x = ";
    cin >> X;
    if (X * X == 9) cout << "Деление на ноль\n";
    else if ((X - 5) / (X * X - 9) < 0) cout << "Корень из отрицательного числа\n";
    else if ((X * X + 2 * X + 1) <= 0) cout << "Логарифм неположительного числа\n";
    else
    {
        float Y = (sqrt((X - 5) / (X * X - 9))) + log((X * X + 2 * X + 1));
        cout << "F = " << Y << endl;
    }

    system("pause");
    return 0;
}
→ Ссылка