Besoin d'une correction d'un exercice

TonTonChief Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
TonTonChief Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous, j'ai un gros soucis avec un exercice que je tente de résoudre. Pouvez vous m'aider svp à le corriger ?

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





EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

jumulka Messages postés 12157 Date d'inscription   Statut Membre Dernière intervention   4 578
 
Bonjour,
d'abord initialise tes variables à 0 (sinon elles ont une valeur que je ne sais pas d'ou ça vient)

ensuite dans la déclaration ta variable "resultat" à un accent "résultat" enlève le.

dans ton scanf tu ouvre un guillemet que tu ne ferme pas, ton scanf devrait plus être sur la forme : scanf("%d",&nbre);

resultat = i ne sert à rien la.

ton instruction dans le for n'a pas de sens ton i=8 et tant que i est inférieur ou égale à nbre il fait la boucle, si le chiffre que tu rentre sur nbre est inférieur à 8 il ne fera pas la boucle et pas de ";" après le for et le while, si j'ai bien compris le factoriel avec ton explication, c'est la multiplication des nombres jusqu'au nombre voulue ? si c'est ça ton while serait plutot :
for( i = 0 ; i <= nbre ; i++)

dans tes printf il faut mettre \n et non /n, et il te manque le d du %d avant le \n dans le dernier
2
TonTonChief Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, mais j'arrive pas les introduire trop complexe. Déja qu'il y a deux boucle a gérer !
0
jumulka Messages postés 12157 Date d'inscription   Statut Membre Dernière intervention   4 578
 
oui mais tu peux déjà corrigé ce que j'ai dis, sauf le while jme suis complétement gouré ce que j'ai écris était pour le for.
pour le while tu déclare de i avant et tu l'incrémente après :
int i = 0;
while(i<=nbre)
{
  resultat = resultat * i;
  i++;
}
0