Qual é a diferença entre os dois locais?

Eu tenho um programa recursivo. Quando oprintf é usado na função, ele gera 123 e, quando usado fora, gera 0123.

#include <stdio.h>

fact(int);
int main()
{
    int x=3;
    fact(x);
    printf("\n");
    system("PAUSE");
}

int fact(int y)
{
    if (y > 0)
    {
         fact(y-1);
         printf("%d",y);  
    }
    //printf("%d",y);   
}   

Eu não estou usando tanto oprintf ao mesmo tempo . Que diferença faz a localização desteprintf declaração criar?

questionAnswers(4)

yourAnswerToTheQuestion