Prove this polynomial falls within $\mathbb R[x]$ [ The problem below is from Yao Musheng (姚慕生), Wu Quanshui (吴泉水), Advanced Algebra (高等代数学) Ed $2$, Fudan University Press, page $207$. ]

Suppose $f(x)\in \mathbb C[x]$. If $\forall c\in \mathbb R$, $f(c)\in\mathbb R$, prove:
  $$f(x)\in \mathbb R[x].$$

My attempt is as follows:
For convenience I first specify that and $\deg f(x)\ge 2$ (otherwise it is easy to prove). Suppose $f(x)=a_0+a_1x+\cdots+a_{n-1}x^{n-1}+a_nx^n\notin \mathbb R[x]$ , then at least one of its coefficients, say $a_i$ is not real number. Therefore let $a_i=A+Bi$ where $B\ne 0$, and let $\tilde{f}(x):=f(x)-a_ix^i$.
If $\tilde{x}\ne 0$ and it satisfies $\tilde{f}(\tilde{x})=0$, then 
$$f(\tilde{x})=a_i\tilde{x}^i$$
If $\tilde{x}$ is real, then so is $\tilde{x}^i$. But $a_i$ is not real, thus $f(\tilde{x})=a_i\tilde{x}^i$ is not real. However, since $\tilde x\in\mathbb R$, $f(\tilde{x})$ must be real. Contradiction. Therefore $\tilde{x}$ cannot be real. Then I don't know how to proceed.
I have tried disproving the possibility of $\tilde{x}=0$ case because that doesn't seem to lead to anything. But I also failed.
Seems that I have got on the wrong track into a dead end. I am really struggling with this problem now. Could anybody drop a hint or help me out? Best regards.
 A: Write $f(x) = u(x) + i\,v(x)$, with $u,v \in \mathbb R[x]$.
By hypothesis, $v(c)=0$ for all $c \in \mathbb R$. This means that $v=0$ because it has an infinite number of roots.
A: There is another nice approach:
$f-f(0) = x \cdot h(x)$ with some polynomial $h$. We have $h(c) = \frac{f(c)-f(0)}{c} \in \mathbb R$ for all $c \in \mathbb R \setminus \{0\}$. By continuity we deduce $h(0) \in \mathbb R$, hence $h \in \mathbb R[x]$ by induction on the degree.
But then clearly $f = x \cdot h(x) + f(0) \in \mathbb R[x]$.
A: Show that all the higher derivatives of $f$ at 0 are real number ( just by first principle and it should be easy). Note that all coefficients can be obtained from them.
A: Another way to solve this problem is to use Lagrange polynomials
Since $P$ takes real values at at least $n+1$ points, let $\alpha_0,\ldots,\alpha_n\in\mathbb R$ be such that $P(\alpha_i)\in \mathbb R$.
Lagrange interpolation tells us that $\displaystyle P=\sum_{k=0}^n P(\alpha_k)\prod_{j\neq k}\frac{X-\alpha_j}{\alpha_k-\alpha_j}$
Hence $P\in\mathbb R[X]$
This proof, as well as lhf's one shows that hypotheses may be weakened to "$P$ assumes real values at at least $\deg P +1$ real points (instead of the whole real line)".
A: Hint: If $f(x)$ is a polynomial with leading term $a_n x^n$, then $\lim_{x \to \infty} f(x)/x^n = a_n$. So $a_n$ is real. Can you see how to proceed from there, subtracting off leading terms from $f$?
A: If you don't mind using big hammers, you can use Schwarz reflection principle to conclude that $f(z)=\overline{f(\overline{z})}$ and the result follows by comparing coefficients.
