I used the debugger to examine this code but not understanding a couple areas.
- Why does the for loop repeat after it exits to print a new line? If it exits the loop, shouldn’t it be done with it?
- Why is n incremented and not i as stated with i++?
int main(void)
{
int height = get_int("Height: ");
draw(height);
}
void draw(int n)
{
if (n <= 0)
{
return;
}
draw(n - 1);
for (int i = 0; i < n; i++)
{
printf("#");
}
printf("\n");
}
Another approach to thinking about it is that
draw()
does two things. 1) it draws the line that’s1
shorter than itself, then 2) it draws itself.The
for
loop happens after it draws the line that’s1
shorter than itself.