A real number is algebraic if it is a root of a nonconstant polynomial with integer coefficients.
(a) Prove that the set $A$ of algebraic numbers is denumerable.
(b) Repeat the exercise for roots of polynomials whose coefficients belong to some fixed, arbitrary denumerable set $S\subset\textbf{R}$.
(c) Repeat the exercise for roots of trigonometric polynomials with integer coefficients.
MY ATTEMPT
(a) To begin with, we notice there are infinitely many algebraic numbers. This is because every integer is an algebraic number. Thus $|A|\geq |\textbf{Z}| = |\textbf{N}|$. On the other hand, every polynomial of degree $n\geq 1$ has at most $n$ algebraic numbers. Consequently, since for each $n$ there corresponds $|\textbf{Z}^{n+1}| = |\textbf{N}|$ polynomials with integer coefficients and for each of them there are at most $n$ roots, there are at most $|\textbf{N}\times\textbf{N}_{\leq n}| = |\textbf{N}|$ algebraic numbers for each degree $n$. Given that denumerable union of denumerable sets is denumerable, we conclude that $|A|\leq|\textbf{N}|$. Thus $|A| = |\textbf{N}|$.
(b) Each polynomial of degree $n$ has at most $n$ roots. Since for each $n$, there are $|S^{n+1}| = |\textbf{N}|$ polynomials, we conclude there are at most $|\textbf{N}\times\textbf{N}_{\leq n}| = |\textbf{N}|$ roots for each $n$. Since denumerable union of denumerable sets is denumerable, we conclude that $|A|\leq|\textbf{N}|$. On the other hand, there are infinitly many roots: it suffices to consider the polynomials $p(x) = x - a$ where $a\in S$. Thus $|A| \geq |\textbf{N}|$, that is to say, $|A| = |\textbf{N}|$.
(c) I am little bit lost as how to approach it.
Could someone double-check my answers and propose a solution to (c)?