j'ai fais une fonction pour calculer le factoriel d'un nombre mais le programme me renvois le nombre de l'utilisateur
#include <stdlib.h>
#include <stdio.h>
int factoriel(int n);
int main()
{
int n;
printf("entrer un nombre");
scanf_s("%d", &n);
factoriel(int n);
printf("le factoriel est %d",n);
return EXIT_SUCCESS;
}
int factoriel(int n)
{
int i;
int res = 1;
for (i = 0; i < n; i++)
{
res = res * i;
}
return res;
}
Il y a 2problèmes ligne 12. La ligne indique "il existe une fonction nommée factorielqui reçoit un paramètre qui a le type int", c'est quasi la même chose que la ligne 4. Pour appeler un fonction on doit simplement lui passer une valeur. Il faudrait plutôt écrire : factoriel( n );pour que ne soit plus une déclaration mais un appel de fonction. Sauf que, appeler la fonction sans chercher à récupérer son résultat, ne sert pas à grand chose. Pour appeler et récupérer le résultat dans n :
D'abord, tu n'associes pas de valeur à ta fonction dans le main.
e.g. n = factorielle(n);
Dans la fonction res est mis à 1 au départ, il ne vaut plus 1 après le premier appel
fais res = 1; après la déclaration.
Ensuite, si le nombre entré est assez gros, un int ne sera pas suffisant, utilise plutôt le long long
Et même là, 100! donnera un nombre très gros.
Le Tout est souvent plus grand que la somme de ses parties.
factoriel (petit blocage )
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.
Le Tout est souvent plus grand que la somme de ses parties.