Besoin d'une correction d'un exercice
Hors ligneTontonchief Le 27/03/2018 à 09:19 Profil de Tontonchief Configuration de Tontonchief

Bonjour a tous, j'ai un devoir a remettre a tout a l'heure en langage C et je bloque complèmetement sur un exercice. Pouvez-vous m'aider a le traiter svp. 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 ) ;

}

--

Le Chief

Hors ligneNourimane Le 14/02/2019 à 23:25 Profil de Nourimane Configuration de Nourimane

É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
#include
#include

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 ) ;
}

Commençons par le for :

Vous avez deux erreurs :

1. Vous commencez la boucle avec 8 ? Mais pourquoi ?

2. Vous commencez votre résultat à 0 alors toutes les multiplications ne vont rien changer et le résultat restera 0. Evitez l'utilisation des variables non initialisées.

A) While

#include
#include
#include

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 ) ;
}

Là, c'est un peu plus grave :

La syntaxe de la boucle while est complètement fausse.

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels