what you need:
complex roots of a real polynomial occur in conjugate pairs.
in C, we have (z+w)* = z*+w* and (zw)* = z*w*.
suppose p(x) is a real polynomial, say p(x) = a0 + a1x +....+ anxn.
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*) = a0 + a1z* +....+ an(z*)n
= (a0)* + (a1)*z* +...+ (an)*(zn)* (since the aj are real, and (z*)n = (z*)(z*)...(z*) = [(z)(z)...(z)]*)
= (a0)* + (a1z)* +...+ (anzn)* (since the conjugate of the product is the product of the conjugates)
= (a0 + a1z +...+ anzn)* (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).