Recursion is often unintuitive for beginners, to understand this code we should simply it a bit
int main(void)
{
int height = get_int("Height: ");
draw(height);
}
void draw(int n)
{
if (n <= 0)
{
return;
}
draw(n - 1);
printf("%d", n);
printf("\n");
}
Inputting 3 should now give us a output like
1
2
3
Try to understand that case first and than muddle it up with the loop.
If you examine it in a debugger look at the Stack trace. If you use gdb its bt
in a visual debugger it's probably the list of function names next to the variables