Why does the for loop repeat in this recursion?
Why does the for loop repeat in this recursion?
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++?
void draw(int n);
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"); }
So you're drawing a triangle of
#
that starts skinny in the top left and grows to the right with a height and width ofn
?As an example, Height 3 would be:
I'm not following your questions, but the code seems pretty reasonable... though the use of recursion feels pretty unnecessary when you could easily just use a nested for loop.
An example using a nested loop
https://3v4l.org/e0IJm
It's supposed to be a pyramid but not my code. It's an example of a recursive function from a CS50 lecture and I'm just trying to understand how the code works line by line.
So is my example of Height 3 in line with your expectations?