An abelian group $G$ and onto group homomorphism $h: G \longrightarrow \mathbb{Z}$ 
Let $G$ be an abelian group and $h: G \longrightarrow \mathbb{Z}$ a group homomorphism which is onto.
(a) Prove that there exists a group homomorphism $f: \mathbb{Z} \longrightarrow G$ such that $hf$ is the identity map on $\mathbb{Z}$.
(b) Prove that $G$ is isomorphic to $\mathbb{Z} \times$ (ker $h$).

I'm not sure how to begin for part (a) -- from what I understand, group homomorphisms are not equivalence relations (and, in particular, not necessarily symmetric), so how can I know that the group homomorphism $f$ even exists ? Does it have to do with the fact that both $G$ and $\mathbb{Z}$ are given to be abelian groups?
For part (b), we can use the First Isomorphism Theorem. In particular, $G/ker(h) \cong im(h)$ $\Rightarrow$ $G/ker(h) \cong \mathbb{Z}$, since $h$ is an onto group homomorphism, and thus, $im(h)$ coincides with $\mathbb{Z}$.
Now, after reading When does the isomorphism $G\simeq ker(\phi)\times im(\phi)$? hold? , I'm convinced that this gives us the desired isomorphism $G \cong \mathbb{Z} \times ker(h)$, because the composition $hf$ is the identity map based on what we show in part (a).
Is this correct ?
Thanks for all your help (=
 A: Here are some hints:
For (a), notice a group homomorphism $h : \mathbb{Z} \to G$ is completely determined by $h(1)$, and moreover, we can send $1$ wherever we want. 
Since $f : G \to \mathbb{Z}$ is surjective, we know $f(x) = 1$ for some $x$. Can you use this, and the discussion above, to find a group homomorphism with the desired properties?
For (b), you are on the right track. Once you've constructed $h$ as above, use the fact that an abelian group $G$ is isomorphic to $X \times Y$ if and only if both


*

*every element of $G$ can be written as $xy$ for $x \in X$ and $y \in Y$

*$X \cap Y = \{ 0 \}$

I hope this helps ^_^
A: Hint: I'll use additve notation because the groups are abelian. (a) group homomorphisms are functions. You need a function $f$ from $\Bbb{Z}$ to $G$ such that $h(f(y)) = y$ for every $y \in \Bbb{Z}$. In particular you need $h(f(1)) = 1$, and because $h$ is onto you know you can pick some $x \in G$ such that $h(x) = 1$ and let $f(1) = x$. But if $h$ and $f$ are homomorphisms, what can you now say about $h(f(2)) = h(f(1+1)))$ and $h(f(-1))$ and $h(f(-3)) = h(f(-1 + -1 +-1))$ etc.
(b) Given $f$ as in part (a) and any $x \in G$, $h(x - f(h(x))) = 0$ (do you see why)? Use this to construct a function $i$ from $G$ to $\Bbb{Z} \times \mathrm{ker}(h)$ and show that $i$ is an isomorphism. (It's in this part that you need to know that $G$ is abelian.)
