You need to take out the
numberVar C = 0; out of the formula. That will set the formula to 0 every time it is evaluated. If you ever need to set it back to zero then put either another field that is just the
numberVar C = 0; portion or have another evaluation in the @Counter formula or when it gets to a certain number (as it does for the 1).
I'm assuming that your @Counter field is in either a detail section or report header or footer and that is why you are getting the field on top of each other. If you are wanting them side-by-side I would suggest also declairing a string variable that will store the fields in it and then just suppress it until you want to display it. So something like this:
whileprintingrecords;
global numberVar nC:=(if nC<3 then nC+1 else 1);
global stringVar sC:=sC & " " & totext(nC,0);