The title is basically what i have to do: Let $C$ be a binary self-dual code:
Show that all words have weight divisible by four or half are divisible and the another half don't.
I showed that basically whole words in $C$ have weight even. Also I tried defining a set
$C_1=${$x\in C / w(x)$ is divisible by 4} and tried to create some function to show that $dim(C_1)\geq dim(C)-1$ but not succeeded.
Consider that there is a codeword $c$ with $4 \nmid w(c)$. Then look at the coset $c + C_{1}$. Can you show that every codeword in $C$ is either in $C_{1}$ or in $c+C_{1}$?
This implies that if not all codewords have weight 4, then the code consisting of weight 4 words of $C$ is an index 2 subgroup of $C$ (and so contains half the words).