In your posted work, you've got a great start, in terms of the logic you used. However, we need to "clean up" parentheses, make a few corrections, define the notation you are using, and use this notation consistently
Let's start with defining notation, and then let's stick with it.
To simplify matters, we'll let the domain of our universe consist of bricks.
Let $T(x)$ denote "x is on the table".
Let $O(x, y)$ denote "x is on top of y".
Now to the translations: Pay particular attention to the parentheses, which are used to enclose everything which within the scope of a quantifier which precedes the parentheses.
First sentence: (i) If a brick is on another brick, it is not on the table.
$$(i)\quad \forall x \Big(\exists y (O(x, y)) \rightarrow \lnot T(x)\Big)$$
Then we have (ii) Every brick is on the table or on another brick:
$$(ii)\quad \forall x\,\Big(T(x) \lor \exists y\,(O(x, y))\Big)$$
So far, your work has been very close to the above. Now let's look at the final sentence:
(iii) No brick is on a brick which is also on a brick.
In loglish: "For all bricks x, if there exists a brick y such that O(x, y), then there does not exist any z such that O(z,x)." Now, the full translation:
$$(iii)\quad \forall x \Big(\exists y (O(x,y)) \rightarrow \lnot\exists z(O(z,x))\Big)$$
Or alternatively, we can say in loglish "For all bricks x, if there exists a brick y such that O(x, y), then for all bricks z, it is not the case that O(z,x)":
$$(iii)\quad \forall x \Big(\exists y\, (O(x,y)) \rightarrow \forall z(\lnot O(z,x))\Big)$$