C'è un bel po' di confusione ...

Quando dici "n=0, errato dovrebbe essere 4" a qual riga esatta di codice ti riferisci? Dove sono le printf?

n arriva dall'esterno delle due funzioni ... quando le chiami il suo valore è corretto?