# cs50 pset1 mario math wrong or order?

So I'm working on mario less and running into a road block. I got it to output the space and rows and columns but it's upside down, backwards and not the right number of spaces exactly. Like if you input 4 its:

``````###
#
``````

The code is this:

``````# include <stdio.h>
#include <cs50.h>

//prompt user for  half- pyrimid height
// create blocks and right align them

int main(void)

{
int height;
do
{
height = get_int ("Input postive number between 1 and 23:  ");
}
while (height < 0 || height > 23);

for (int i = 1; i <= height; i++)
{
height -=  i;
printf (" ");

for (int n = 0; n < height; n++)

printf ("#");
printf ("\n");
}

}
``````
• I changed for (int i = 1 to int i =0 and the spaces are right still upside down though. Sep 16 '18 at 19:59

First, `height` is essentially a constant after it is entered by the user. It represents the number of rows to print, and as such, shouldn't be changed by the program. It should control the "main" loop, as you have done here.
Finally, you want to print `height + 1` characters on each line. That means you need to vary the number of spaces that print on each line, which means spaces could (should?) be output in a loop too.
I have found this pset takes more thinking than coding. It might be helpful to get out the old pencil and paper. Draw the grid you want and evaluate how many spaces, how many hashes in each row. Then determine how each relates to `height` and which row is being processed (`i` in this case). That should give you the "math" you need to control the space loop and the hash loop.