Я пытаюсь написать функцию на С++, которая решает для X, используя квадратное уравнение. Это то, что я написал изначально, и это работает, если для ответа нет комплексных чисел:
float solution1 = (float)(-1.0 * b) + (sqrt((b * b) - (4 * a * c)));
solution1 = solution1 / (2*a);
cout << "Solution 1: " << solution1 << endl;
float solution2 = (float)(-b) - (sqrt((b*b) - (4 * a * c)));
solution2 = solution2 / (2*a);
cout << "Solution 2: " << solution2;
Если, например, я использую уравнение: x^2 - x - 6, я правильно получаю решение 3, -2.
Мой вопрос в том, как бы я учитывал комплексные числа... например, учитывая уравнение:
x^2 + 2x + 5
Решив вручную, я бы получил -1 + 2i, -1 - 2i.
Ну, я думаю, два вопроса: могу ли я написать вышеизложенное лучше, а также учесть комплексное число?
Спасибо за любую помощь!