Если можно использовать численные методы, то метод Ньютона можно модифицировать чтобы с комплексными тоже работал (делить прямоугольные области пополам). Для определения количества корней на интервале вроде метод Штурма должен помочь. За стартовый интервал предлагаю взять (FLOAT_MIN; FLOAT_MAX) по обеим осям (действительная и мнимая).
Для удобства предлагаю написать вспомогательный класс для работы в комплексными числами (или взять его из GMP, если можно пользоваться сторонними библиотеками).
Если нужно "прямое" решение без ЧМов, то Абель в 17 веке показал, что это "задача для мужика" (не выражается в рациональных функциях и радикалах). Но надежда есть:
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%80%D... (я, правда, про это только на лекциях слышал и в жизни не применял, так что хз, насколько актуально).