c – Printing n strings using recursion

I have some difficulties in understanding how the following subprogram works. I know what recursion is and I solved programming problems with recursive functions, but the following example is really unique. Could someone help me understand how the recursion works in this case? Thanks in advance.

Exercise: create a function that gets n chains and prints them (in reverse order) using the recursion.

Solution:

void printstr (int n)
{
char str[LEN + 1]; / * LEN was previously defined * /
yes (n <= 0)
he came back;

scanf ("% s", str);
printstr (n - 1);
printf ("% s  n", str);
he came back;
}