void main(void)
{
    short int n=1, copie_n ;
    double fact ; /* type réel pour éviter les dépassements dans le calcul */
    printf("\n Entrez un entier (negatif si vous voulez sortir) : ") ;
    scanf("%hd", &n) ; /* saisie au clavier (non protégée) */
    while (n>0) /* pour éviter un dépassement lors de l’affichage : while (n>0 && n<17) */
    {
        fact=1.0 ;
        for (copie_n=n ; copie_n>1 ; copie_n-- )
        {
            fact = fact * copie_n ;
        }
        printf("\n\t La factorielle demandee est %ld (%.2le)",(long)fact,fact);
        printf("\n\n Entrez un entier (negatif si vous voulez sortir) : ") ;
        rewind(stdin) ;
        scanf("%hd", &n) ; /* saisie au clavier (non protégée) */
    }
}
