Замени float на double.
double x, y;
cin >> x >> y;
if (x * x + y * y = 2 * fabs(x) && x * y >= 0) {
// входит
} else {
// не входит
}
В твоём коде отсутствует проверка того, что точка находится в первом или третьем квадранте. Самый простой вариант такой проверки:
x ∙ y ≥ 0
Проверку единичных кругов можно упростить:
(x - 1)² + y² ≥ 1 || (x + 1)² + y² ≥ 1 эквивалентно: (|x| - 1)² + y² ≥ 1
Раскрываем скобки и получаем:
|x|² - 2 ∙ |x| + 1 + y² ≥ 1
x² + y² ≥ 2 ∙ |x|
И для возведения в квадрат не имеет смысла использовать pow: банальные x * x и y * y намного эффективнее.