discontinuity of a monotonic function 
This is a question from Rudin's Principles of Mathematical Analysis p.97 and the writer leaves readers to prove the remark. I try to prove it but I find difficulties when writting rigorous proof. Since $\{x_n\}$ can be dense in $\left(a,b\right)$. When I draw a neighborhood of $x$, there are infinitely many $x_n$'s inside. How can I deal with this problem?
 A: To expand part (a) and prove $f$ is monotonically increasing, suppose $x<y$. Then 
$$f(y)= \sum_{x_n<y} c_n = \sum_{x_n<x} c_n + \sum_{x\leq x_n <y} c_n = f(x)+ \sum_{x\leq x_n <y} c_n \geq f(x)$$
The last inequality $\geq$ holds because the $c_n$ are positive.
The points of discontinuity are the $x_n$.
What does it mean to be discontinuous at $x_N$? It means there exists some small number $\epsilon$ such that in every neighborhood of $x_N$ there is a $y$ such that $|f(y)-f(x_N)|<\epsilon$. 
Take any $y>x_N$ in the neighborhood. Let $\epsilon = c_n/2$. Then 
$$f(y)-f(x_N) = \sum_{x_n<y} c_n - \sum_{x_n <x_N} c_n = \sum_{x_N\leq x_n <y}c_n \quad \geq \quad c_N \quad >\epsilon $$
Therefore we have satisfied what it means to be discontinuous. 
Of course, the above $\geq$ inequality may actually be a sum of infinite positive $c_n$, but this does not matter, because we know there's at least one "jump" in the graph of $c_N$ which is enough to prove discontinuity. 
To observe the fact about the left and right limits, 
$$f(x_n+)-f(x_n-) = c_n$$ think about the (assumed) fact that $\sum_{n\geq 1} c_n$ converges. This means that for every $\epsilon$ there exists a large $M$ such that for $m>M$,  $\qquad$ $\sum_{n>m} c_n<\epsilon$.  Now if you choose your neighborhood around $x_n$ small enough so that it does not contain any of $x_1, ... x_M$ you should be able to show $f(x_n -)=f(x_n)$ (expand your definition of left continuity). $f(x_n+)$ is similar.
For the final part, (c), all other points are either isolated from the $x_n$ (showing continuity is easy - the function is constant on some neighborhood) or a limit point of the $x_n$. For a limit point, $x$, you should think similarly to above: For an arbitrary $\epsilon$ choose a large $M$ so that  $\sum_{n>M}c_n <\epsilon$. Restrict your neighborhood around $x$ so that it contains none of $x_1, ... x_M$. Then if $y$ is in this neighborhood, $|f(x)-f(y)| = \sum_{x\leq x_n <y} c_n < \sum_{n>M} c_n <\epsilon$ because the $c_n$ summed all have $n>M$. Therefore we have continuity. 
