Program to evaluate powers of complex numbers
C has a built-in complex type and a cpow() function since C99.  You seem to be reinventing-the-wheel.

Only in rare circumstances should you use float.  In most cases, you should use double instead.

Exponentiation of complex numbers is better done using the polar representation:

$$z = r e^{i\theta}$$

where

$$\begin{align}
z &amp;= a + i b \\
r &amp;= \sqrt{a^2 + b^2} \\
\theta &amp;= \arctan{\frac{b}{a}}
\end{align}$$

then

$$z^n = (r e^{i\theta})^n = r\,^n e^{i\ n \theta}$$

For non-trivial values of \$n\$, you would be better off converting to a polar representation, performing the exponentiation, and converting back to the Cartesian representation.