Problem 17 in chapter 3 of Spivak book If $f(x)=0$ for all $x$, then f satisfies $f(x+y)=f(x)+f(y)$ for all $x$ and $y$, and also $f(xy)=f(x)f(y)$ for all $x$ and $y$. Now suppose that $f$ satisfies these two properties, but that $f(x)$ is not always $0$. Prove that $f(x)=x$ for all $x$, as follows:
a)Prove that $f(1)=1$.
b) Prove that $f(x)=x$ if $x$ is rational
c) Prove that $f(x)>0$ if $x>0$ (This part is tricky, but if you have been paying attention to the philosophical remarks accompanying the problems in the last two chapters , you know what to do.)
I can do a) and b). However, part c is just weird: It is obvious as daylight: if $x>0$, then by part b), $f(x)>0$, yet Spivak warns me that it is tricky.
So, my question is: What is wrong with my thinking? Is Spivak wrong? I have consulted the answer book and discovered that its way of solving the problem is super weird!
I thank you very much for your answer.

Part (b) says that $f(x)=x$ only for rational $x$ and you need to show that $f(x)>0$ for all real $x>0$. So the requirements are different.
But I think continuity of $f$ is crucial for the above problem. Otherwise it doesn't hold.
