Bonjour,

Voila je rencontre un petit problème avec mon code. J'ai du mal avec les boucles aux factorielles. Pouvez-vous m'aidez a traiter corriger ca ? Merci d'avance !

Écrire un programme C qui demande un entier naturel N, et qui calcule sa factorielle en respectant que 0!=1.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
a)  Utiliser while, 
b)  Utiliser for.

B) For 
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main ()
{
int nbre, i, résultat ;

printf ("Veuillez saisir un nombre :/n")
scanf ("%, &nbre );
resultat = i ; 
for ( i= 8; i<=nbre ; i++) ;
{
resultat = resultat * i ; 
}
printf ( " La factorielle de %d est %/n", nbre , resultat ) ; 
}
A) While 

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main ()
{
int nbre, i, résultat ;

printf ("Veuillez saisir un nombre :/n")
scanf ("%, &nbre );
resultat = i ; 
while ( i= 8; i<=nbre ; i++) ;
{
resultat = resultat * i ; 
}
printf ( " La factorielle de %d est %/n", nbre , resultat ) ; 
}

1 réponse


Salut,

Je sais pas si tu as copié / collé ton code depuis ton éditeur, mais il y a plein d'erreurs.

Pour transformer un for en while, suffit pas de remplacer le mot ;)
while ( i= 8; i<=nbre ; i++) => CA NE FONCTIONNERA JAMAIS

Si ton prof demance cet exercice c'est qu'il a plus à faire qu'un simple changement de mot.

cadeau

#include <stdio.h>

int main() {
        int i, nbr, res;

        printf("Veuillez saisir un nombre:\n");
        scanf("%d", &nbr);

        res = 1;

        for (i = 2; i <= nbr; i++) {
                res *= i;
        }

        printf("La factorielle de %d et %d\n", nbr, res);
}
#include <stdio.h>

int main() {
        int i, nbr, res;

        printf("Veuillez saisir un nombre:\n");
        scanf("%d", &nbr);

        res = 1;
        i = 2;

        while (i <= nbr) {
                res *= i;
                i++;
        }

        printf("La factorielle de %d et %d\n", nbr, res);
}