what you need:

complex roots of a real polynomial occur in conjugate pairs.

proof:

in C, we have (z+w)* = z*+w* and (zw)* = z*w*.

suppose p(x) is a real polynomial, say p(x) = a_{0}+ a_{1}x +....+ a_{n}x^{n}.

suppose further that z is a complex number with p(z) = 0. we want to show that p(z*) = 0, as well. remember, for a real number a, a* = a (there's no imaginary part to change sign).

now p(z*) = a_{0}+ a_{1}z* +....+ a_{n}(z*)^{n}

= (a_{0})* + (a_{1})*z* +...+ (a_{n})*(z^{n})* (since the a_{j}are real, and (z*)^{n}= (z*)(z*)...(z*) = [(z)(z)...(z)]*)

= (a_{0})* + (a_{1}z)* +...+ (a_{n}z^{n})* (since the conjugate of the product is the product of the conjugates)

= (a_{0}+ a_{1}z +...+ a_{n}z^{n})* (since the conjugate of the sum is the sum of the conjugates)

= (p(z))* = 0* = 0 (since 0 is real).

now what does this mean for a cubic?

if one root is complex (but not real), then TWO roots are complex.

but if we already have 2 real roots, then the third root must be its own conjugate (since we have at MOST 3 roots, and thus don't have room for a conjugate-pair), and so it must be real.

that is the only possible configurations are:

complex, complex conjugate of the first root, real root.

real, real, real.

(we either have one conjugate pair, or none).