/********************************************************** programme calculant et affichant n! appel du programme: factorielle 5 par exemple pour 5! http://www-sop.inria.fr/oasis/personnel/Carine.Courbis/c/ ************************************************************/ #include #include int main(int argc, char * argv[]) { int n = 0; unsigned long res; /* verifie que l'utilisateur a mis un argument a l'appel du programme */ if (argc > 1) { if (*argv[1] == '-') { /* nombre negatif */ printf("Le programme factorielle n'accepte que les nombres positifs\n"); } else { n = atoi(argv[1]); /* retourne 0 si ce n'est pas un nombre */ if (n == 0) { char * pNombre = argv[1]; if ((*pNombre != '0') || (*(++pNombre) != '\0')) { /* ie la valeur donnee n'etait pas 0 ie lettres, ... */ printf("Le programme factorielle n'accepte que les nombres positifs\n"); return; } } res = 1; /* n! = n*(n-1)! */ while (n > 0) { res = res*n; n--; } printf("%s!=%d\n", argv[1], res); /* %s permet d'afficher une chaine */ } } else printf("Veuillez donner la valeur n pour le calcul de n! eg factorielle 3\n"); }