Yo! Je crois que tu te méprends quelque part sur la factorielle. Factorielle(2) = 2*1, Factorielle(3) = 3*2*1, ok. Il se passe quoi si jamais tu rajoutes 0 la dedans? Factorielle(2) = 2*1*0? Factorielle(3) = 3*2*1*0?
C'est ça que tu essaies de faire en retournant 0.
- Edité par KirbXCoucou 18 août 2017 à 8:36:39
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
Si tu renvois 0 lors de ta deuxième condition tu auras toujours 0 parce que tu vas utiliser ta fonction en réduisant nb à chaque fois, du coup à un moment tu auras nb=-1 et ta fonction va renvoyer 0. Or ton résultat est le produit des resultats successifs de la fonction, donc si UN SEUL des résultats est 0, tu sais que 0*x*c*....*a=0
Si tu renvois 0 lors de ta deuxième condition tu auras toujours 0 parce que tu vas utiliser ta fonction en réduisant nb à chaque fois, du coup à un moment tu auras nb=-1 et ta fonction va renvoyer 0. Or ton résultat est le produit des resultats successifs de la fonction, donc si UN SEUL des résultats est 0, tu sais que 0*x*c*....*a=0
- Edité par PitchPitch il y a moins de 30s
C'est juste, sauf que nb n'arrivera jamais à -1, il se stoppera à 0, dû à la condition "<=", mais ta fonction va bien renvoyer 0
Edit : Et ne dis pas "facile" quand tu réponds a quelqu'un, c'est peut-être évident pour toi, mais pas pour les autres, sinon, ils ne poseraient pas la question
- Edité par KirbXCoucou 18 août 2017 à 8:49:44
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
Question de style : pourquoi des parenthèses avec les "return"?
Pourquoi renvoyer 0 si le nombre passé en paramètre est supérieur ou égal à 13?
Pour la gestion d'erreur, tu peux soit affecter une valeur à ERRNO (cf. doc et internet), et la fonction appelante se charge de vérifier un éventuel code d'erreur; soit passer un pointeur sur une variable résultat en paramètre, et retourner un code d'erreur (ou de succès).
Question de style : pourquoi des parenthèses avec les "return"?
Juste pour info: dans la première version du K&R, qui m'a servi à débuter en C (il y a longtemps, windows n'existait pas), la valeur renvoyée par un return est entre parenthèses dans tous les exemples. Dans mon cas, il est compréhensible que j'ai gardé cette habitude, mais pour kindboy, j'ai comme un doute
- Edité par edgarjacobs 18 août 2017 à 12:31:17
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
× 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.
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev